标签:div null mem memset set win get 查找 cal
有时候需要模糊查找句柄,findwindow就不好使了。
使用GetDesktopWindow和GetWindow枚举窗口,匹配所有窗口的标题可以实现模糊查找句柄。
//模糊查找窗口句柄 HWND find_window(char *title) { HWND dkHwnd = GetDesktopWindow(); HWND hd = GetWindow(dkHwnd, GW_CHILD); while(hd) { char winTitle[125]; memset(winTitle,0,sizeof(winTitle)); GetWindowText(hd,winTitle,sizeof(winTitle)); if(strstr(winTitle,title) != NULL) return hd; hd = GetWindow(hd, GW_HWNDNEXT); } return NULL; }
windows还提供了另一种方法枚举窗口句柄
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam) { char title[125]; GetWindowText(hwnd,title,sizeof(title)); if(strstr(title,"计算器") == 0) { MessageBox(NULL,"找到了计算器","提示",MB_OK); return FALSE; } return TRUE; } EnumWindows(EnumWindowsProc,0);
这种方法更好,但是这种方法需要使用到回调函数,在程序控制上可能需要调整。
标签:div null mem memset set win get 查找 cal
原文地址:http://www.cnblogs.com/hatsusakana/p/7679919.html