开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 8203|回复: 11
收起左侧

[易源码分享] 代码记录,GetWindow遍历所有窗口/子窗口

[复制链接]
结帖率:82% (9/11)
发表于 2015-12-14 13:05:20 | 显示全部楼层 |阅读模式   广东省深圳市
分享源码
界面截图: -
是否带模块: -
备注说明: -
     非常简单实用的代码,贴出来,方便搜索,使用GetWindow,采集桌面所有窗口/子窗口句柄。

API

HWND GetWindow(HWND hWnd,int nCmd)
HWND GetDesktopWindow(void)
DWORD GetWindowThreadProcessId(HWND nWnd,LPDWORD  lpdwProcessId)
int GetClassNameA(HWND hWnd, LPSTR lpClassName,int nMaxCount)
int GetWindowTextA(HWND hWnd,LPSTR lpString,int nMaxCount)

常量

.常量 GW_CHILD, "5"
.常量 GW_HWNDNEXT, "2"

.常量 MAX_PATH, "260"

代码:

  
子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
查找结果整数型0
结果数整数型 
结果数 = 枚举窗口_ (GetDesktopWindow (), 4820, “Internet Explorer_Server”, 字符 (0), 真, 查找结果)  ' 在IE进程中查找 Internet Explorer_Server
返回 (0)  ' 可以根据您的需要返回任意数值
子程序名返回值类型公开备 注
枚举窗口_整数型 
参数名类 型参考可空数组备 注
起始句柄_整数型
进程ID_整数型如无请填写 0
类名_文本型如无请填写 字符(0)
标题_文本型如无请填写 字符(0)
完全查找_逻辑型真:遍历完所有句柄,将符合条件的句柄全部抓取; 假:发现符合条件的句柄后立即返回
结果数组_整数型如有多个,则在此获得反馈,返回值将为查找到的数量。
变量名类 型静态数组备 注
子句柄整数型 
结果整数型 
句柄所属进程ID整数型 
句柄类名文本型 
句柄标题文本型 
如果真 (进程ID_ = 0 类名_ = 字符 (0) 标题_ = 字符 (0))  ' 至少需要一个条件
返回 (0)
句柄类名 = 取空白文本 ( #MAX_PATH )
句柄标题 = 取空白文本 ( #MAX_PATH )
如果真 (起始句柄_ ≠ 0)
子句柄 = GetWindow (起始句柄_, #GW_CHILD )
判断循环首 (子句柄 ≠ 0)
结果 = 枚举窗口_ (子句柄, 进程ID_, 类名_, 标题_, 完全查找_, 结果数组_)
如果真 (结果 ≠ 0)
返回 (结果)
GetWindowThreadProcessId (子句柄, 句柄所属进程ID)
GetClassNameA (子句柄, 句柄类名, #MAX_PATH )
GetWindowTextA (子句柄, 句柄标题, #MAX_PATH )
判断 (句柄所属进程ID ≠ 0 类名_ ≠ 字符 (0) 标题_ ≠ 字符 (0))
如果真 (句柄所属进程ID = 进程ID_ 句柄类名 = 类名_ 句柄标题 = 标题_)
判断 (完全查找_)
加入成员 (结果数组_, 子句柄)
返回 (子句柄)


判断 (句柄所属进程ID ≠ 0 类名_ ≠ 字符 (0) 标题_ = 字符 (0))
如果真 (句柄所属进程ID = 进程ID_ 句柄类名 = 类名_)
判断 (完全查找_)
加入成员 (结果数组_, 子句柄)
返回 (子句柄)


判断 (句柄所属进程ID ≠ 0 类名_ = 字符 (0) 标题_ ≠ 字符 (0))
如果真 (句柄所属进程ID = 进程ID_ 句柄标题 = 标题_)
判断 (完全查找_)
加入成员 (结果数组_, 子句柄)
返回 (子句柄)


判断 (句柄所属进程ID = 0 类名_ ≠ 字符 (0) 标题_ ≠ 字符 (0))
如果真 (句柄类名 = 类名_ 句柄标题 = 标题_)
判断 (完全查找_)
加入成员 (结果数组_, 子句柄)
返回 (子句柄)


判断 (句柄所属进程ID = 0 类名_ = 字符 (0) 标题_ ≠ 字符 (0))
如果真 (句柄标题 = 标题_)
判断 (完全查找_)
加入成员 (结果数组_, 子句柄)
返回 (子句柄)


判断 (句柄所属进程ID = 0 类名_ ≠ 字符 (0) 标题_ = 字符 (0))
如果真 (句柄类名 = 类名_)
判断 (完全查找_)
加入成员 (结果数组_, 子句柄)
返回 (子句柄)


判断 (句柄所属进程ID ≠ 0 类名_ = 字符 (0) 标题_ = 字符 (0))
如果真 (句柄所属进程ID = 进程ID_)
判断 (完全查找_)
加入成员 (结果数组_, 子句柄)
返回 (子句柄)




子句柄 = GetWindow (子句柄, #GW_HWNDNEXT )
判断循环尾 ()
返回 (取数组成员数 (结果数组_))



头像被屏蔽
发表于 2019-9-17 23:46:10 | 显示全部楼层   吉林省长春市
支持
回复 支持 反对

使用道具 举报

发表于 2019-5-9 15:04:54 | 显示全部楼层   北京市北京市
66666666666666666666666666666666666
回复 支持 反对

使用道具 举报

发表于 2018-10-13 00:44:03 | 显示全部楼层   云南省曲靖市
我来支持一下咯
回复 支持 反对

使用道具 举报

结帖率:38% (3/8)
发表于 2016-2-9 21:19:55 | 显示全部楼层   福建省龙岩市
呃,有点复杂- =~有没有简单的例子哦。。。枚举窗口是DLL命令还是什么啊?GetDesktopWindow是什么参数= =~新手哦,体谅下,谢谢。有没有类似的视频教程?或者简单程序?
回复 支持 反对

使用道具 举报

结帖率:78% (7/9)
发表于 2015-12-16 22:31:43 | 显示全部楼层   江苏省徐州市
谢谢                 
回复 支持 反对

使用道具 举报

发表于 2015-12-14 18:26:39 | 显示全部楼层   山西省临汾市
感谢分享,谢谢楼主~~
回复 支持 反对

使用道具 举报

结帖率:90% (9/10)
发表于 2015-12-14 15:41:32 | 显示全部楼层   湖北省武汉市
支持下
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)
发表于 2015-12-14 14:36:35 | 显示全部楼层   广东省惠州市
我来看看咯
回复 支持 反对

使用道具 举报

结帖率:80% (4/5)
发表于 2015-12-14 14:34:49 | 显示全部楼层   广东省惠州市
我来支持一下咯
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表