目录

TC脚本开发-窗口句柄的捕捉方法总结

目录

TC脚本开发-窗口句柄的捕捉方法总结

标题获得方法:

整型 窗口句柄

窗口句柄=窗口.找到窗口( “脚本编写算法.txt - 记事本“ )

如果 (窗口句柄==0)

辅助.消息框(“没有找到窗口”)

红色字体为窗口标题,必须输入准确的标题,不支持模糊捕捉。

要找到准确的标题 可以用AB抓抓捕捉.

AB抓抓使用方法:先点击 下图的鼠标窗口句柄。   然后 点击F9热键 开始捕捉,发现随着鼠标的移动在不同窗口之间,会捕捉到相关的信息.

我们把鼠标指在记事本的蓝条标题栏上 就捕捉到了 我们需要的标题.

https://img-my.csdn.net/uploads/201302/19/1361279637_9490.png

PS:有些游戏由于有游戏保护,AB抓抓会捕捉不到它的信息.我们只能再试试下面的其他方法.

顶层句柄-窗口得到顶层句柄

命名空间: 窗口

函数功能:得到顶层窗口句柄

函数原型: 整型

顶层窗口句柄()

参数:

返回值: 返回整型类型的顶层窗口句柄整型值

举例:

窗口.顶层窗口句柄()

详细举例

整型 窗口句柄

字符型 顶层句柄

窗口句柄=窗口.顶层窗口句柄()

顶层句柄=转换.整型转字符型(窗口句柄)

辅助.消息框(顶层句柄)

执行结果:得到当前活动的窗口句柄  721486

PS:可以得到有游戏保护的窗口句柄,已测试.

鼠标所在窗口句柄-得到鼠标窗口句柄

命名空间: 窗口

函数功能:得到鼠标移动的窗口句柄

函数原型: 整型 鼠标所在窗口句柄()

参数:

返回值: 返回 整型 类型的窗口句柄整型值

举例:

窗口.鼠标所在窗口句柄()

详细举例

整型 窗口句柄

字符型 鼠标所在窗口句柄

窗口句柄=窗口.鼠标所在窗口句柄()

鼠标所在窗口句柄=转换.整型转字符型(窗口句柄)

辅助.消息框(鼠标所在窗口句柄)

执行结果:得到鼠标移动的窗口句柄 3277994

PS:可以得到有游戏保护的窗口句柄,已测试.

焦点窗口-得到当前焦点窗口

命名空间: 窗口

函数功能:得到当前焦点的窗口句柄

函数原型: 整型 当前焦点句柄()

参数:

返回值: 返回整型类型的焦点窗口句柄整型值

举例:

窗口.焦点窗口()

详细举例

整型 焦点窗口句柄

字符型 内容

焦点窗口句柄=窗口.焦点窗口()

内容=转换.整型转字符型(焦点窗口句柄)

辅助.消息框(内容)

执行结果: 得到当前键盘焦点的窗口句柄 2490940

PS:可以得到有游戏保护的窗口句柄,已测试.

枚举

功能原型:系统.枚举(名称,类型)
功能说明:根据类型枚举需要的类型,返回枚举后的结果,未找到返回空字符,类型:0:窗口名枚举窗口句柄,1:类名枚举窗口句柄,2:进程名枚举进程句柄,3:父窗口句柄枚举子窗口句柄(参数1为空串”",将以桌面句柄为父窗口句柄)
功能举例:

PS:无法得到有游戏保护的窗口句柄,已测试.

进程

功能原型:进程.获取窗口句柄(handle,type=0)
功能说明:通过进程相关信息获取窗口句柄,type:0 通过进程句柄,1 通过进程PID
功能举例:

PS:无法得到有游戏保护的窗口句柄,已测试

大漠和天使插件的找窗口功能比较强大,能获得TC自身取不到的窗口

不过要先注册  下面是天使的注册方法,大漠的类似

https://img-my.csdn.net/uploads/201302/21/1361457245_2618.png

https://img-my.csdn.net/uploads/201302/21/1361457261_6771.png

然后引用命名空间.

https://img-my.csdn.net/uploads/201302/21/1361457274_3083.png

大漠

查找符合类名或者标题名

函数简介:

查找符合类名或者标题名的顶层可见窗口

函数原型:

long FindWindow(class,title)

参数定义:

class 字符串: 窗口类名,如果为空,则匹配所有. 这里的匹配是模糊匹配.

title 字符串: 窗口标题,如果为空,则匹配所有.这里的匹配是模糊匹配.

返回值:

整形数:

整形数表示的窗口句柄,没找到返回0

示例:

hwnd = dm.FindWindow("",“记事本”)

枚举系统中符合条件的窗口

函数简介:

根据指定条件,枚举系统中符合条件的窗口,可以枚举到按键自带的无法枚举到的窗口

函数原型:

string EnumWindow(parent,title,class_name,filter)

参数定义:

parent
整形数
获得的窗口句柄是该窗口的子窗口的窗口句柄,取0时为获得桌面句柄
title
字符串
窗口标题. 此参数是模糊匹配.
class_name
字符串
窗口类名. 此参数是模糊匹配.
filter
整形数
取值定义如下

1 : 匹配窗口标题,参数title有效

2 : 匹配窗口类名,参数class_name有效.

4 : 只匹配指定父窗口的第一层孩子窗口

8 : 匹配所有者窗口为0的窗口,即顶级窗口

16 : 匹配可见的窗口

32 : 匹配出的窗口按照窗口打开顺序依次排列 <收费功能,具体详情点击查看>

这些值可以相加,比如4+8+16就是类似于任务管理器中的窗口列表

返回值:

字符串 :

返回所有匹配的窗口句柄字符串,格式"hwnd1,hwnd2,hwnd3"

示例:

hwnds = dm.EnumWindow(0,“QQ三国”,"",1+4+8+16)

这句是获取到所有标题栏中有QQ三国这个字符串的窗口句柄集合

hwnds = split(hwnds,",")

转换为数组后,就可以处理了

这里注意,hwnds数组里的是字符串,要用于使用,比如BindWindow时,还得强制类型转换,比如int(hwnds(0))

天使

查找符合类名或者标题名

函数简介:

查找符合类名或者标题名的顶层可见窗口

函数原型:

int FindWindow(string class,string title)

参数定义:

class 字符串: 窗口类名,如果为空,则匹配所有. 这里的匹配是模糊匹配.

title 字符串: 窗口标题,如果为空,则匹配所有.这里的匹配是模糊匹配.

返回值:

整型数:

整型数表示的窗口句柄,没找到返回0

示例:

hwnd = ts.FindWindow("",“记事本”)

根据指定的进程名字

函数简介 :

根据指定的进程名字,来查找可见窗口 .

函数原型 :

int FindWindowByProcess ( string process_name,string class,string title )

参数定义 :

process_name

字符串

: 进程名 . 比如 (notepad.exe). 这里是精确匹配 , 但不区分大小写 .

class

字符串

: 窗口类名,如果为空,则匹配所有 .

这里的匹配是模糊匹配 .

title

字符串

:

窗口标题 , 如果为空,则匹配所有 . 这里的匹配是模糊匹配 .

返回值 :

整型数 :

整型数表示的窗口句柄,没找到返回 0

示例 :

hwnd

= ts.FindWindowByProcess (“noteapd.exe”,"","

记事本 “)

枚举

函数简介:

根据指定条件,枚举系统中符合条件的窗口,可以枚举到TC自带的无法枚举到的窗口

函数原型:

string EnumWindow(int parent,string title,string class_name,int filter)

参数定义:

parent
整型数
获得的窗口句柄是该窗口的子窗口的窗口句柄,取0时为获得桌面句柄
title
字符串
窗口标题. 此参数是模糊匹配.
class_name
字符串
窗口类名. 此参数是模糊匹配.
filter
整型数
取值定义如下

1 : 匹配窗口标题,参数title有效

2 : 匹配窗口类名,参数class_name有效.

4 : 只匹配指定父窗口的第一层子窗口

8 : 匹配所有者窗口为0的窗口,即顶级窗口

16 : 匹配可见的窗口

这些值可以相加,比如4+8+16就是类似于任务管理器中的窗口列表

返回值:

字符串 :

返回所有匹配的窗口句柄字符串,格式"hwnd1,hwnd2,hwnd3”

示例:

hwnds = ts.EnumWindow(0,“QQ三国”,"",1+4+8+16)

这句是获取到所有标题栏中有QQ三国这个字符串的窗口句柄集合

hwnd=array[]

str.split(hwnds,",",hwnd)

转换为数组后,就可以处理了

这里注意,hwnds数组里的是字符串,要用于使用,比如BindWindow时,还得强制类型转换,比如type.cint(hwnds(0))

获取鼠标指向的窗口句柄

函数简介 :

获取鼠标指向的窗口句柄 , 可以获取到TC自带的插件无法获取到的句柄

函数原型 :

int GetMousePointWindow()

参数定义 :

返回值 :

整型数 :

返回整型表示的窗口句柄

示例 :

hwnd = ts.GetMousePointWindow()

获取给定坐标的窗口句柄

函数简介 :

获取给定坐标的窗口句柄 , 可以获取到TC自带的插件无法获取到的句柄

函数原型 :

int GetPointWindow(int x,int y)

参数定义 :

X

整型数

:

屏幕 X 坐标

Y

整型数

:

屏幕 Y 坐标

返回值 :

整型数 :

返回整型表示的窗口句柄

示例 :

hwnd = ts.GetPointWindow(100,100)

获取顶层活动窗口中具有输入焦点的窗口句柄

函数简介 :

获取顶层活动窗口中具有输入焦点的窗口句柄

函数原型 :

int GetForegroundFocus()

参数定义 :

返回值 :

整型数 :

返回整型表示的窗口句柄

示例 :

hwnd = ts.GetForegroundFocus()