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/138044.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jsonobject是什么类型_json和jsonobject区别

    jsonobject是什么类型_json和jsonobject区别JSONObject是一种数据结构,可以理解为JSON格式的数据结构(key-value结构),可以使用put方法给json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。一、构建json1、实例化一个JSONObject对象,用put()方法将数据写入。JSONObjectobj=newJSONObject(…

    2022年9月2日
    3
  • 八大排序算法(C语言实现)

    八大排序算法(C语言实现)文章目录插入排序插入排序希尔排序选择排序选择排序堆排序交换排序冒泡排序快速排序并归排序并归排序插入排序插入排序希尔排序选择排序选择排序堆排序交换排序冒泡排序快速排序并归排序并归排序…

    2022年6月24日
    19
  • Java volatile关键字最全总结:原理剖析与实例讲解(简单易懂)

    Java volatile关键字最全总结:原理剖析与实例讲解(简单易懂)一、简介volatile是Java提供的一种轻量级的同步机制。Java语言包含两种内在的同步机制:同步块(或方法)和volatile变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile变量的同步性较差(有时它更简单并且开销更低),而且其使用也更容易出错。二、并发编程的3…

    2022年4月27日
    54
  • redis使用redis-cli查看所有的keys及清空所有的数据

    redis使用redis-cli查看所有的keys及清空所有的数据

    2021年10月27日
    84
  • 数据结构 Hash表(哈希表)

    数据结构 Hash表(哈希表)参考链接:数据结构(严蔚敏)什么是Hash表要想知道什么是哈希表,那得先了解哈希函数哈希函数对比之前博客讨论的二叉排序树二叉平衡树红黑树BB+树,它们的查找都是先从根节点进行查找,从节点取出数据或索引与查找值进行比较。那么,有没有一种函数H,根据这个函数和查找关键字key,可以直接确定查找值所在位置,而不需要一个个比较。这样就**“预先知道”**key所在的位置,直…

    2022年7月23日
    8
  • Dubbo监控中心(Monitor)的介绍和简易监控中心的安装

    Dubbo监控中心(Monitor)的介绍和简易监控中心的安装

    2022年3月7日
    46

发表回复

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

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