|
|
C++下查找同一标题窗口句柄的方法 |
作者:洛羽叶 点击率:7919 发布时间:2012-12-10 |
C++下查找同名窗口有两个方法FindWindow/FindWindowEx、EnumWindows,特别是FindWindowEx具有更高的效率每秒可查找10000次以上,枚举窗口采用回调函数的方式,效率较低,每秒处理1000次左右。
1. FindWindow与FindWindowEx
//查找第一个窗口
hWnd = ::FindWindow(NULL,"test");
//查找第N个窗口 N>=2
while (hWnd!=NULL)
{
hWnd = ::FindWindowExA(NULL,hWnd,NULL,"test");
}
2.EnumWindows枚举系统窗口
::EnumWindows((WNDENUMPROC)HandleCallBack,(LPARAM)this);
BOOL CALLBACK HandleCallBack(HWND hWnd,LPARAM lParam)
{
char buf[256];
::GetWindowTextA(hWnd,buf,256);
if (strlen(buf) > 0 && strstr(buf,"test"))
//找到同名窗口
return TRUE;
}
|
|
|
|
|
|