• 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上测试通过。

    我登高只为了看的更远,如果看到的景色不如人意,我将选择继续攀登!
  • 相关阅读:
    真机测试 iOS -- Coule not find Developer Disk Image
    XX
    Mac 控制 Mac
    在 mac 的 idea 中,查找 tomcat 解析 jsp 文件 后产生的 servlet 的位置
    mac idea 配置tomcat
    idea 普通Java项目转到web项目
    idea 新建java项目
    在mac上使用hexo和github创建博客
    解决git clone卡顿的一种思路
    10.【转载】nodeJS中读写文件方法的区别
  • 原文地址:https://www.cnblogs.com/zkhm123/p/5726883.html
Copyright © 2020-2023  润新知