易语言如何取进程的窗口标题

我想做个软件 就是知道天龙八部的进程 用易语言 自动取它的窗口句柄 而不是用什么彗星小助手 这类的软件 要自动哦

要自动的话直接超级模块里的取句柄(进程)即可
但有些东西没办法进行自动,准只能靠匹配下标或者根据窗口的类型信息来获取如标题,类名,或者窗口所对的那个进程是什么

我这里举两个关于怎么取窗口的例子,我个人推荐是不要什么自动的,要人工前期获取,并后期绝对的方式来获取到

方法1,取所有窗口列表()这个易语言自带有,然后根据取这个窗口所对应的进程进行判断即可取得

方法2,枚举所有关于某进程名的进程pid,然后再枚举进程内所有父级窗口然后逐一进行筛选(根据事先使用彗星小助手等工具取得下标或窗口类名)匹配,得到窗口结果即可
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-30
用精易模块可以实现:
1、.子程序 进程_名取ID, 整数型, 公开, 通过进程名取进程ID;失败返回0
.参数 进程名, 文本型, , 取要进程ID的进程名
.参数 是否区分大小写, 逻辑型, 可空 , 默认为不区分,真=区分
2、.子程序 进程_ID取窗口句柄, 整数型, 公开, 通过进程ID取得该进程的窗口句柄
.参数 进程ID, 整数型, , 该进程的ID;
3、.子程序 窗口_取标题, 文本型, 公开,
.参数 窗口句柄, 整数型, ,
第2个回答  2013-03-27
首先根据进程名取PID(进程标识符)
下面是所用的API

.版本 2

.DLL命令 GetAncestor, 整数型, "user32.dll", "GetAncestor", ,
.参数 hwnd, 整数型
.参数 gaFlags, 整数型

.DLL命令 GetWindowThreadProcessId, 整数型, "user32", "GetWindowThreadProcessId"
.参数 hwnd, 整数型
.参数 lpdwProcessId, 整数型, 传址

.DLL命令 EnumWindows, 整数型, "user32.dll", "EnumWindows"
.参数 lpEnumFunc, 子程序指针
.参数 lParam, 整数型, 传址

下面是子程序
调用:进程标示取窗口句柄("这里写PID")

.版本 2

.子程序 进程标示取窗口句柄, 整数型
.参数 进程标示符, 整数型

EnumWindows (&EnumWindowsProc, 进程标示符)
返回 (进程标示符)

.子程序 EnumWindowsProc, 整数型
.参数 hwnd, 整数型
.参数 lParam, 整数型, 参考
.局部变量 lpPid, 整数型
.局部变量 oldPid, 整数型, 静态

.如果真 (oldPid = 0)
oldPid = lParam
.如果真结束
GetWindowThreadProcessId (hwnd, lpPid)
.如果 (lpPid = oldPid)
lParam = GetAncestor (hwnd, #GA_ROOTOWNER)
返回 (0)
.否则
lParam = 0
返回 (1)
.如果结束
第3个回答  2013-03-27
取窗口句柄吗? 添加API: .版本 2.DLL命令 _取窗口句柄, 整数型, "user32.dll", "FindWindowA"
.参数 窗口类名, 文本型
.参数 窗口标题, 文本型
代码:.版本 2
.支持库 spec.子程序 __启动窗口_创建完毕
.局部变量 窗口类名, 文本型
.局部变量 窗口标题, 文本型调试输出 (_取窗口句柄 (窗口类名, 窗口标题))
第4个回答  2013-03-27
你还不是要先用SPY取得类名先 。
相似回答