win32模糊查找窗口句柄

2021-05-05 15:27

阅读:632

标签: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);

这种方法更好,但是这种方法需要使用到回调函数,在程序控制上可能需要调整。

win32模糊查找窗口句柄

标签:div   null   mem   memset   set   win   get   查找   cal   

原文地址:http://www.cnblogs.com/hatsusakana/p/7679919.html


评论


亲,登录后才可以留言!