FindWindowEx 遍历所有窗口

FindWindowEx 遍历所有窗口 FindWindowEx 唯一麻烦是第2个参数的指定.Explore下窗口是Z序的 ,实际上就是根据第一个参数和第2个参数来找第2个参数后的一个窗口:HWNDchild=0;child=FindWindowEx (NULL,child,NULL,NULL);这样,child就是一个Explore,然后,通过循环能够找到c…

大家好,又见面了,我是你们的朋友全栈君。

 

FindWindowEx  唯一麻烦是第2个参数的指定 .

Explore 下窗口是Z序的  , 实际上就是根据 第一个参数 和 第2个参数 来找 第2个参数后的一个窗口:

HWND child = 0;

child = FindWindowEx  ( NULL , child ,NULL,NULL);

这样 , child 就是一个Explore ,

然后 , 通过循环能够找到child 的下一个窗口

//遍历所有子窗口的子窗口 , Z序遍历
void print_window2(HWND parent , int level)
{
	HWND child = NULL;
	TCHAR buf[MAX_PATH];
	DWORD pid = 0, tid = 0;
	do{
		child = FindWindowEx(parent, child, NULL, NULL);
		int ret = GetWindowText(child, buf, MAX_PATH);
		buf[ret] = 0;
		tid = GetWindowThreadProcessId(child, &pid);
		for (int i = 0; i < level; ++i)
			_tprintf(L"\t");
		_tprintf(L"%s ,  pid:%d, tid:%d\n", buf, pid, tid);
		if (child)
			print_window2(child , level + 1);
	} while (child);
}

//遍历所有 explore 下的窗口 , Z序遍历
void print_window()
{
	HWND child = NULL;
	TCHAR buf[MAX_PATH];
	DWORD pid = 0, tid = 0;

	do{
        //查找 Explore 下的一个窗口,如果能找到则根据 Explore 下的child 继续找
		child = FindWindowEx(NULL, child, NULL, NULL);
		int ret = GetWindowText(child, buf, MAX_PATH);
		buf[ret] = 0;
		tid = GetWindowThreadProcessId(child, &pid);
		_tprintf(L"%s ,  pid:%d, tid:%d\n", buf, pid, tid);
        
        //遍历子窗口们
		if (child)
			print_window2(child, 1);
	} while (child);
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138045.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月1日 上午7:36
下一篇 2022年6月1日 上午7:36


相关推荐

  • 修改tomcat启动窗口名称_重启tomcat命令

    修改tomcat启动窗口名称_重启tomcat命令Tomcat bin目录下用startup.bat启动Tomcat ,启动窗口显示的Title 更改方法如下:1 在bin目录下找到catalina.bat ,用文本模式打开2 找到 if “%TITLE%” == “” set TITLE=Tomcat 这句3 把 set TITLE=Tomcat 更改为 set TITLE=(想使用的名称包括中文) 即可。如图:…

    2022年8月19日
    17
  • mysql8 安装启动报错[通俗易懂]

    注意点1my.ini配置,其中这两项一定要按这个格式,双引号及双反斜杠,否则初始化时会报下面的错basedir="D:\\tool\\MYSQL\\mysql-8.0.12-winx64"datadir="D:\\tool\\MYSQL\\mysql-8.0.12-winx64\\data"[mysqld]#Removeleading#andsettothe…

    2022年4月15日
    74
  • linux网卡驱动怎么看_电脑网卡驱动在哪里查看

    linux网卡驱动怎么看_电脑网卡驱动在哪里查看Linux下查看网卡驱动和版本信息查看网卡生产厂商和信号查看基本信息:lspci查看详细信息:lspci-vvv#3个小写的v查看网卡信息:lspci|grepEthernet查看网卡驱动查看网卡驱动信息:lspci-vvv#找到网卡设备的详细信息,包括网卡驱动列出加载的所有驱动,包括网卡驱动:lsmod查看模块

    2022年10月18日
    5
  • 进制转换方法总结——摘自百度

    进制转换方法总结——摘自百度今天朋友去面试 面试官问他八进制转换二进制方式原理 他突然间蒙逼了 在常见的计算机知识当中 这种最基础的知识 常常会被人给忘记 所以今天我来写一篇进制转换的总结 来复习巩固一下 本文参考百度经验 https jingyan baidu com article 495ba8410966 html 如有侵权 请通知删除先讲一下定义吧 进制也就是进制位 对于接触过电脑的

    2026年3月19日
    1
  • java 8 lambda表达式list操作分组、过滤、求和、最值、排序、去重

    java 8 lambda表达式list操作分组、过滤、求和、最值、排序、去重java8的lambda表达式提供了一些方便list操作的方法,主要涵盖分组、过滤、求和、最值、排序、去重。跟之前的传统写法对比,能少写不少代码。新建实体类packagecom.vvvtimes.vo;importjava.math.BigDecimal;importjava.util.Date;publicclassUser{privateLong…

    2022年6月14日
    380
  • 中文收录的EI期刊

    中文收录的EI期刊可以参考一下两条 1 nbsp 投稿必备 2018 年 EI 收录中文期刊目录公布啦 2 nbsp EI 收录的中文期刊

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号