EnumWindowByProcessId
2024年9月23日大约 1 分钟使用指南Markdown
函数简介
根据指定进程PID以及其他条件,枚举系统中符合条件的窗口,可以枚举到一些常规方法无法枚举到的窗口。
函数原型
string EnumWindowByProcessId(pid, title, class_name, filter)
参数定义
参数 | 类型 | 描述 |
---|---|---|
pid | 整形数 | 进程PID。 |
title | 字符串 | 窗口标题。此参数是模糊匹配。 |
class_name | 字符串 | 窗口类名。此参数是模糊匹配。 |
filter | 整形数 | 取值定义如下: 1 : 匹配窗口标题,参数title有效 2 : 匹配窗口类名,参数class_name有效 8 : 匹配所有者窗口为0的窗口,即顶级窗口 16 : 匹配可见的窗口 这些值可以相加,比如2+8+16 |
返回值
- 字符串 : 返回所有匹配的窗口句柄字符串,格式为"hwnd1,hwnd2,hwnd3"。
示例
hwnds = dm.EnumWindowByProcessId(1124, "天龙八部", "", 1 + 8 + 16)
这行代码获取了所有标题栏中含有"天龙八部"这个字符串并且所在进程ID为1124的所有窗口句柄集合。
hwnds = split(hwnds, ",")
转换为数组后,就可以进一步处理了。
注意:hwnds
数组中的元素是字符串,在使用时(例如在BindWindow
函数中),需要进行类型转换,如int(hwnds[0])
。