枚举所有Windows所有窗口句柄并在Ctreelist控件显示

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

敢问题解决的时候相当棘手   记录以备后用

 

解决思路

 

EnumWindows  -->EnumWindowsProc -->EnumChildWindows -->EnumChildProc

在EnumWindowsProc 获得一个父(祖先)窗口后加入链表HwndList (元素由窗口句柄及其在Ctreelist中的位置组成)

 EnumChildProc 中查到一个窗口 首先去HwndList中查找其父窗口 找到后根据链表元素信息得到其父窗口在树控件中的位置

然后插入到其后

 

解决了如下问题

1:EnumWindows  -->可以获得一个父(祖先)窗口A

2:EnumChildWindows (A)  -->将获得A中的所有子窗口 而不仅仅是其下层 包括A的子窗口B1,B2...  及B1的子窗口C1,C2......

如图

 

  

 

代码演示如下

Java调win32,枚举窗口EnumWindows,遍历所有底层窗口(JNA) 直接上代码 添加pom依赖: <dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna</artifactId> <version>5.11.0</version> </dependency> <dependency> 阅读详情

相关推荐

第四课 C++教程:窗口句柄和文本操作

Windows 操作系统中,每个窗口都有一个唯一的标识符,称为窗口句柄窗口句柄是一个32位的值,可以用来识别和操作窗口

xwx0316的博客 1905

鼠标获取窗口句柄C语言版

鼠标、获取窗口句柄、C语言版、源码 本来很简单就可以描述的, 非得让我写20个, 现在够了吧

如何用C语言写一个获取窗口句柄和其他信息的小程序.

博主是一个SDK编程的初学者,始终坚持学技术要任务驱动的观念,在学习了有关Windows进程,内核对象,进程管理和控制的知识之后,就迫不及待地想要设计一个内存修改器练练手,然而在获取当前运行的各窗口句柄这一步就卡住了,经过一番查阅和钻研,终于写出了如下的CUI小程序,解决了获取窗口及子窗口句柄,获取ClassName,获取WindowText的问题。 不知道这个小程序能不能替代SPY++的部分...

qq934084282的博客 6755

在 CTreeCtrl 中枚举系统中的所有窗口!(I)

2001年02月05日 10:29:00 发信人: cvisual (贝贝), 信区: VisualC 标 题: 在 CTreeCtrl 中枚举系统中的所有窗口!(I) 发信站: BBS 水木清华站 (Tue May 19 14:35:11 1998) 本文将给出一个源程序 在一个对话框中的TreeCtrl中用树的形式枚举窗口 这是头文件 // WinList.h : header

秦梦瑶的专栏 388

【转】Windows下如何枚举所有进程(含代码)

Windows下如何枚举所有进程 Posted on 13:37:00 by 晓月 and filed under Coding, Windows, Windows Mobile   要编写一个类似于 Windows 任务管理器的软件,首先遇到的问题是如何实现枚举所有进程。暂且不考虑进入核心态去查隐藏进程一类的,下面提供几种方法。请注意每种方法的使用局限,比如使用这些 API 所需要的操作

zdragon2002的专栏 1万+

hutool(枚举工具-EnumUtil与树结构工具-TreeUtil)

这种树状结构可以根据配置文件灵活的定义节点之间的关系,也能很好的兼容关系数据库中数据。树状结构中最大的问题就是关系问题,在数据库中,每条数据通过某个字段关联自己的父节点,每个业务中这个字段的名字都不同,如何解决这个问题呢?获取枚举字符串值和枚举对象的Map对应,使用LinkedHashMap保证有序,结果中键为枚举名,值为枚举对象。PR的提供者提供了一种解决思路:自定义字段名,节点不再是一个bean,而是一个map,实现灵活的字段名定义。获得枚举名对应指定字段值的Map,键为枚举名,值为字段值。

madleep的博客 3287

C++ Builder XE EnumWindowsProc遍历所有窗口的名称

/ 替换为正确的消息ID。OutputDebugString(L"枚举窗口句柄: ");ShowMessage("无活动窗口");// 例如,将句柄添加到列表中或者其他操作。// 这里我们仅仅输出到调试窗口。// 这里可以添加你的处理逻辑。// 继续枚举其他窗口

lzksword的专栏 661

EnumWindowsProc

EnumWindowsProc使用实例

四个程序员的博客 717

C++ 枚举所有窗口

#include "windows.h" #include "iostream" using namespace std; BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam) { TCHAR caption

风过以后 9266

获得窗口枚举其子窗口

zzz可以调用函数FindWindow(窗口类名,窗口标题)获得窗口句柄,然后调用EnumChildWindows(父窗口,回调函数名,参数)来获得父窗口下的子窗口句柄,代码实现如下 Code#include<windows.h>BOOLCALLBACKEnumChildProc(HWNDhWnd,LPARAMlParam);intWINAPIWinMain(HIN...

weixin_34388207的博客 1008

枚举进程句柄

目前正在做的项目进行性能测试,被通知进程句柄数已经

xbgprogrammer的专栏 4454

c语言根据窗口姓名获取句柄,win32 API窗口句柄的获得

可用的win32 api函数:1.HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName)HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName)2.HWND WindowFromPoint(POINT...

weixin_31461433的博客 1094

使用EnumWindows函数通过Windows进程ID获取窗口句柄实例(VB.NET2019)

本文通过已知窗口的进程ID获取窗口句柄的实例来浅谈EnumWindows函数使用、委托函数的定义及其意义、ByVal和ByRef的区别。

mengxiangde的博客 6630

枚举进程子窗口(Win32, C++)

枚举指定进程所有子窗口

FlameCyclone的博客 1237

C++-Win32-获取主窗口句柄-GetCurrentProcessId-EnumWindows

  原型:BOOL EnumWindows。   该函数枚举所有屏幕上的顶层窗口窗口句柄传送给应用程序定义的回调函数。回调函数返回FALSE将停止枚举,否则EnumWindows函数继续到所有顶层窗口枚举完为止。  功能:获取当前进程一个唯一的标识符。...

插件开发 4384

C++ Win32枚举桌面所有窗口

#include <Windows.h> #include <Dwmapi.h> #include <iostream> #pragma comment(lib, "dwmapi.lib") int main(int argc, char* argv[]) { //获取桌面句柄 auto hwnd = GetDesktopWindow(); //获取桌面子窗口句柄 hwnd = GetWindow(hwnd, GW_CHILD); auto counte.

wangyi463295828的博客 1911
上一篇: 【LIUNX】---TCP/IP学习与实践[基于原始套接字的rootkit]
下一篇: 《windows网络编程》--->套接字(I/O)模式 介绍及其选择
cmdhack
博客等级 码龄19年 20粉丝 77原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值