码迷,mamicode.com
首页 > Windows程序 > 详细

win32模糊查找窗口句柄

时间:2017-10-17 10:03:26      阅读:339      评论:0      收藏:0      [点我收藏+]

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!