TC官方合作论坛
标题:
怎么通过进程名找到窗口名
[打印本页]
作者:
xiyangah
时间:
2013-5-3 22:51
标题:
怎么通过进程名找到窗口名
返回串 = array[8]
返回值=系统.枚举("Client.exe",2)
字符串.分割(返回值,"|",返回串) //用来分割
整型 i
i=0
循环(i<8)
标题=窗口.得到标题(进程.获取窗口句柄(返回串
))
辅助.消息框(标题)
i = i + 1
循环结束
为什么我这个不行
作者:
陌上青衣。
时间:
2013-5-4 00:01
中文命名空间: 系统
英文命名空间: system
函数功能: 根据类型枚举需要的类型,并返回枚举到的结果
中文函数原型: 枚举(name,type)
英文函数原型: enum(name,type)
参数:
name: 名称(根据类型来提供,比如模式0:需要的就是窗口标题(如:计算器,注意有些窗口没有窗口名) 1:类名(通过AB抓抓或者窗口返回类名等函数获取,注意有些窗口没有类名) 2:进程名(通过任务管理器中查看得到,如"QQ.exe","YY.exe")
type:
0: 窗口名枚举窗口句柄
1: 类名枚举窗口句柄
2: 进程名枚举进程句柄
3: 父窗口句柄枚举子窗口句柄 (参数1为空串,如系统.枚举("",3)将以桌面句柄为父窗口句柄)
返回值: 根据类型枚举需要的类型,返回枚举后的结果,未找到返回空字符
复制代码
看看第二个参数为2的时候返回的是什么
作者:
jrflsh
时间:
2013-5-4 02:53
进程.获取窗口句柄(返回串[i]
复制代码
i循环n次之后已经不是0了
你枚举到的窗口可能如果只有一个
就是返回串[0]
用返回串
肯定找不行了
作者:
九先生
时间:
2013-5-4 08:08
TC本身自带的那个枚举进程名字获取进程句柄有问题 每次获取的进程句柄都不一样,不建议你用那个,用天使插件的枚举进程PID比较靠谱!多开单开都可以准确窗获取口句柄 ,代码如下
pids=ts.EnumProcess("Client.exe",)
bb=字符串.查找字符串(pids,",")
如果(bb>0) //多开的时候获取窗口句柄
str=array[]
字符串.分割(pids,",",str)
数组空间.大小(str,ii)
遍历(i=0;i<ii;i++)
hwnd1=类型.转字符型(进程.获取窗口句柄(类型.转整型(str
),1))
如果(i==0)
hwnd=hwnd1
否则
hwnd=字符串.连接(hwnd,字符串.连接(",",hwnd1))
//多开返回窗口句柄串自己
分割
转换成标题
如果结束
遍历结束
否则
hwnd=类型.转字符型(进程.获取窗口句柄(类型.转整型(pids),1))
//单开的时候返回唯一的窗口句柄
如果结束
返回 hwnd //自己封装成TLL,调用很方便传入进程名字就OK,获取失败返回0
功能结束
希望采纳,这个进程名字枚举窗口句柄个人感觉很方便 现在游戏很多都是采用随机窗口标题和类名 造成枚举窗口句柄很麻烦,进程名字他是没法随机的 所以我现在都是通过这个方法获取窗口句柄 多开单开都方便 上传我自己用的一个TLL
[attach]8949[/attach] [attach]8949[/attach] 调用方法 窗口句柄=我的命令库.枚举句柄("进程名字") 前提你自己脚本里要注册最新4.008版本天使插件 以前老版本天使插件枚举进程PID有BUG
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1