zoukankan      html  css  js  c++  java
  • 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上测试通过。

    我登高只为了看的更远,如果看到的景色不如人意,我将选择继续攀登!
  • 相关阅读:
    maven 父子模块保持相同
    Maven deploy时排除指定的某个module
    源码,反码,补码
    Java日志之Slf4j,Log4J,logback原理总结
    Git Bash设置代理
    分享2个分布式锁
    二叉树的遍历记忆方法
    MySQL百万级数据分页查询及优化
    eclipse无法访问sun.misc.Unsafe类的解决办法
    Spring学习日志之纯Java配置的MVC框架搭建
  • 原文地址:https://www.cnblogs.com/zkhm123/p/5726883.html
Copyright © 2011-2022 走看看