|
发表于 2025-8-13 22:59:52
|
显示全部楼层
浙江省嘉兴市
.版本 2
.支持库 spec
.子程序 进程ID取祖句柄
.参数 进程名称, 文本型
.局部变量 句柄数组, 整数型, , "0"
.局部变量 i, 整数型
.局部变量 c, 整数型
进程_取同名ID (进程名称, 句柄数组, )
调试输出 (句柄数组)
.计次循环首 (取数组成员数 (句柄数组), i)
获取窗口句柄列表 (句柄数组 )
调试输出 (“找到窗口句柄数量:”, 取数组成员数 (句柄列表))
.计次循环首 (取数组成员数 (句柄列表), i)
调试输出 (“句柄”, i, “:”, 句柄列表 , “(0x” + 取十六进制文本 (句柄列表 ) + “)”, 窗口_取标题 (句柄列表 ))
.计次循环尾 ()
.计次循环尾 ()
.子程序 __启动窗口_创建完毕
进程ID取祖句柄 (“HxPDS.exe”)
.子程序 获取窗口句柄列表, 整数型, , 返回找到的句柄数量
.参数 进程ID, 整数型
清除数组 (句柄列表)
目标PID = 进程ID
EnumWindows (&枚举窗口回调, 0)
返回 (取数组成员数 (句柄列表))
.子程序 枚举窗口回调, 逻辑型
.参数 当前句柄, 整数型
.参数 自定义参数, 整数型
.局部变量 窗口PID, 整数型
GetWindowThreadProcessId (当前句柄, 窗口PID)
.如果真 (窗口PID = 目标PID 且 GetParent (当前句柄) = 0)
加入成员 (句柄列表, 当前句柄)
.如果真结束
返回 (真)
.版本 2
.DLL命令 EnumWindows, 逻辑型, "user32.dll", "EnumWindows"
.参数 回调函数地址, 整数型
.参数 自定义参数, 整数型
.DLL命令 GetWindowThreadProcessId, 整数型, "user32.dll", "GetWindowThreadProcessId"
.参数 窗口句柄, 整数型
.参数 进程ID指针, 整数型, 传址
.DLL命令 GetParent, 整数型, "user32.dll", "GetParent"
.参数 窗口句柄, 整数型
补充内容 (2025-8-14 09:55):
“HxPDS.exe” 改为你要找的进程名称 不知道你是不是这个意思。
补充内容 (2025-8-14 09:56):
.版本 2
.程序集 窗口程序集_启动窗口
.程序集变量 目标PID, 整数型
.程序集变量 句柄列表, 整数型, , "0"
|
评分
-
参与人数 1 | 荣誉 +1 |
收起
理由
|
笨潴
| + 1 |
热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻! |
查看全部评分
|