关闭

mfc获取其它程序窗口句柄

796人阅读 评论(0) 收藏 举报
分类:
const char *getWindowTitle(HWND hWnd){
	char WindowTitle[1000]={0};      
    ::GetWindowText(hWnd,WindowTitle,1000);  
	 std::string *title = new std::string(WindowTitle);
	 return (*title).c_str();
}
bool equal(const char *a, const char *b){
	return strcmp(a, b) == 0;
}
void show(const char *message){
	AfxMessageBox(message);
}
  
//EnumChildWindows回调函数,hwnd为指定的父窗口  
BOOL CALLBACK EnumChildWindowsProc(HWND hWnd,LPARAM lParam)  
{  
    char WindowTitle[1000]={0};      
    ::GetWindowText(hWnd,WindowTitle,1000);  
    printf("%s\n",WindowTitle);  

	if(equal( getWindowTitle(GetParent(hWnd)), getWindowTitle(hWnd))){
		//show(WindowTitle);
	}
	
    return true;     
}  
  
//EnumWindows回调函数,hwnd为发现的顶层窗口  
BOOL CALLBACK EnumWindowsProc(HWND hWnd,LPARAM lParam)  
{  
    if (GetParent(hWnd)==NULL && IsWindowVisible(hWnd) )  //判断是否顶层窗口并且可见  
    {  
        const char *WindowTitle = getWindowTitle (hWnd); 
		
        EnumChildWindows(hWnd,EnumChildWindowsProc,NULL); //获取父窗口的所有子窗口  
		if(equal(WindowTitle, "waw.exe")){
			show(WindowTitle);
			return false;
		}
    }  
      
    return true;     
}  

void CwawWithLogDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
// CDialogEx::OnOK();
   EnumWindows(EnumWindowsProc ,NULL );  
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    cocos2d-x/lua官方交流群
    美图欣赏
    个人资料
    • 访问:223269次
    • 积分:4838
    • 等级:
    • 排名:第5941名
    • 原创:266篇
    • 转载:20篇
    • 译文:0篇
    • 评论:14条
    最新评论