Windows API EnmuWindows的学习使用

  最近一直在纠结EnmuWindows的使用方法,后来才搞明白,现将自己测试用的代码贴出来,下面对代码做一个解释。

 1 #include<windows.h>
 2 #include<string>
 3 /****************************************************************************
 4 当你调用完EnumWindows(EnumWindowsProc ,NULL );后。系统自动会枚举所有的窗口
 5 每当枚举到一个窗口,就会自动进入EnumWindowsProc,你可在函数里利用hWnd句柄处理
 6 你要做的事情,比如获取窗口标题。当执行完你自己需要处理的代码后,退出函数。系统又
 7 会枚举下一个窗口,当获得下一个窗口后,又会再次进入EnumWindows(EnumWindowsProc ,NULL )
 8 ****************************************************************************/
 9 BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
10 {
11     if (GetParent(hWnd) == NULL  &&  IsWindowVisible(hWnd))  //判断是否顶层窗口并且可见
12     {//在这个函数中可以进行你需要的操作
13         char WindowTitle[100];
14         ::GetWindowText(hWnd, WindowTitle, 100);//获取WindowTitle
15         if (strcmp(WindowTitle, (char *)lParam) == 0)//如果两个字符串相同
16         {
17 
18             ::MessageBox(NULL, WindowTitle, NULL, MB_OK);//如果匹配上以对话框的形式打印出来
19             //停止枚举返回false
20             return false;
21         }    
22     }
23     return true;
24 }
25  int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
26 {
27     char TestTitle[100] = "httpd";//为了方便我在这里设置了字符串为窗口的WinCaption
28     EnumWindows(EnumWindowsProc, (LPARAM)TestTitle);//第一个参数是回调函数,第二个是回调函数的第二个参数。
29     
30 }

BOOL EnumWindows( WNDENUMPROC lpEnumFunc, LPARAM lParam );该函数枚举所有屏幕上的顶层窗口,并将窗口句柄传送给应用程序定义的回调函数,其中lParam是传递给lpEnumFunc的参数。回调函数返回FALSE将停止枚举,否则EnumWindows函数继续到所有顶层窗口枚举完为止。

 

这个例子的功能是在main函数输入一个窗口的WinCaption,也就是你想要查找的窗口的WinCaption,然后枚举所有的桌面窗口调用EnumWindowsProc函数,直到找到所要查找的窗口时用MessageBox()函数将Wincaption的名字显示出来。停止枚举。就是这么简单,本程序创建一个win32应用程序,可以直接运行。在vs2015上测试通过。

转载于:https://www.cnblogs.com/zkhm123/p/5726883.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值