FindWindowEx 遍历所有窗口

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);
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery介绍 DOM对象和jQuery对象的转换与区别

jQuery Hello World程序 <script type“text/javascript” src“xxx//jquery-x.y.z.js">引入jQuery.存在两个版本,jquery-x.y.z.min.js是精简压缩版,不带min的是开发版,代码中的注释和缩进等都被保留了.注意路径中的”/"需要转义,即用”//“.$()符号将DOM对象转…

PlacementBrowser源码分析

PlacementBrowser的源码在 Editor/PlacementMode下面 一、Placement分类的创建 1. Placement分类被存贮在 FPlacementModeModule 的成员变量 Categories里面。 2. 在 FPlacementModeModule::StartupModule() 创建出所有的Placement分类 3. 每个大类由RegisterPlacementCat…

swfit-学习笔记(数组的使用)

Swift数组的使用&#xff0c;参考&#xff1a;《The Swift Programming Language》中文版 // Copyright (c) 2015年 Zsmile. All rights reserved. //import UIKitclass ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()//数组//创建空数…

menu源码分析

1. 菜单根据功能不同被划分了不同的section&#xff0c;不同的section的源码被分布在不同的地方 例如&#xff0c;主菜单的源码在Editor/Mainframe&#xff0c;datavaildation菜单的源码在Plugins\Editor\DataValidation下 2. 以主菜单为例&#xff0c;菜单以如下方法构建 首先…

Oracle Job相关

Oracle JOB的建立&#xff0c;定时执行任务 begin sys.dbms_job.submit(job > :job, what > proc_test;, next_date > trunc(sysdate)11/24, interva…

to_string

to_string 会把浮点数四舍五入

ueditor使用-图片上传正常,图片显示异常404

做个小项目&#xff0c;用到了ueditor&#xff0c;其中需要在ueditor中上传图片。 问题症状&#xff1a; 点击上传图片的按钮后选择图片&#xff0c;上传到了目的文件夹&#xff0c;但是显示不了&#xff0c;f12查看也是404.后来发觉显示图片时路径不对。 解决方案&#xff1a;…

Struts2从一个action转到另一个action的两种方法

在Struts2中&#xff0c;Action处理完用户请求后&#xff0c;将会返回一个字符串对象&#xff0c;这个字符串对象就是一个逻辑视图名。Struts 2通过配置逻辑视图名和物理视图之间的映射关系&#xff0c;一旦系统收到Action返回的某个逻辑视图名&#xff0c;系统就会把相应的物理…

根据select不同的选项实现相应input框添加项的显示

实现效果&#xff1a; 1.单击包时&#xff0c;显示包时的添加项 2.单击包里程&#xff0c;显示包里程的添加项 二 代码实现&#xff1a; 给select添加change事件 获取当前select的value 根据value判断对象显示其添加项框 <script> $(document).ready(function() {$(#typ…

内联汇编用法

在 Linux 代码中&#xff0c;经常可以看到在 C 代码中&#xff0c;嵌入部分汇编代码&#xff0c;这些代码要么是与硬件体系相关的&#xff0c;要么是对性能有关键影响的。 在很久以前&#xff0c;我特别惧怕内嵌汇编代码&#xff0c;直到后来把汇编部分的短板补上之后&#xf…

素数倒数的级数发散性的一个证明

问题 设$\mathbb P$为全体素数的集合,证明级数$$\sum_{p\in\mathbb P}\frac{1}{p}$$ 发散. 证明 做这个问题前&#xff0c;必须知道一个常识:全体素数集$\mathbb P$是无限的.所以题中才能作为级数. 如果结论不成立,则存在$k\in\mathbb N$使得$$\sum_{nk1}^{\infty}\frac{…

BZOJ2286 : [Sdoi2011]消耗战

对于每次询问&#xff0c;构造出虚树&#xff0c;相邻两点边权为该两点路径上边权的最小值 f[i]表示以i为根的子树与1不连通的最小代价,vip[i]表示i是不是关键点 f[i]sum(vip[j]?w[j]:min(f[j],w[j])) #include<cstdio> #include<algorithm> #define N 250010 #de…

epoll怎么实现的

epoll 可以说是编写高性能服务端程序必不可少的技术&#xff0c;在介绍 epoll 之前&#xff0c;我们先来了解一下 多路复用I/O 吧。 多路复用I/O 多路复用I/O&#xff1a;是指内核负责监听多个 I/O 流&#xff0c;当任何一个 I/O 流处于就绪状态&#xff08;可读或可写&#…

xxx

ota的升级及下载转载于:https://www.cnblogs.com/bigben0123/p/4221520.html

C#中yield return用法

转载&#xff1a;http://www.jb51.net/article/54810.htm http://www.cnblogs.com/HunterWei/archive/2012/06/13/csharpyieldreturn.html http://www.cnblogs.com/nankezhishi/archive/2009/03/20/1418086.html http://kb.cnblogs.com/page/42580/ 简单地说&#xff0c;当希望…

SICP~计算机程序的构造和解释~ 1.12 c++实现

题目&#xff1a; 采用递归计算过程计算出帕斯卡三角形的各个元素。 row:0 11 1 12 1 2 13 1 3 3 14 1 4 6 4 15 . . . . . .col: 0 1 2 3 4 //c //递归 #include<iostream> using namespace std;int pascaler(int row ,int col){ int value;…

模板参数自动推导

class Dummy { public:template<typename PA, typename PB>void test(PA res, PB b){} }; int main() {Dummy dummy;dummy.test(1, 2); //不指定类型&#xff0c;根据参数自动推导dummy.test<int, int>(1, 2); //指定类型 } class Dummy { p…

平衡树以及AVL树

平衡树是计算机科学中的一类数据结构。 平衡树是计算机科学中的一类改进的二叉查找树。一般的二叉查找树的查询复杂度是跟目标结点到树根的距离&#xff08;即深度&#xff09;有关&#xff0c;因此当结点的深度普遍较大时&#xff0c;查询的均摊复杂度会上升&#xff0c;为了更…

esmini接入外部ego车控制

1. esmini 在Server.cpp中提供了外部控制ego车的方式&#xff0c;以UDP的方式接收外部数据然后驱动ego运动。为了开启UDP数据接收线程&#xff0c;只需要命令行增加--server参数即可。 2. ScenarioGateway 类中保存了所有车辆的当前数据&#xff0c;UDP线程接收到数据后需要调…

【Python笔记】异常处理

1 什么是异常 异常即是一个事件&#xff0c;该事件会在程序执行过程中发生&#xff0c;影响了程序的正常执行。一般情况下&#xff0c;在Python无法正常处理程序时就会发生一个异常。异常是Python对象&#xff0c;表示一个错误。 当Python脚本发生异常时我们需要捕获处理它&…