首页 > 其他分享 >TC脚本开发-窗口句柄的捕捉方法总结

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

时间:2023-08-08 22:38:27浏览次数:41  
标签:匹配 句柄 枚举 捕捉 整型 字符串 窗口 TC


标题获得方法:

整型 窗口句柄

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

如果(窗口句柄==0)

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


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

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

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

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

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

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





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

命名空间: 窗口

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

函数原型: 整型 顶层窗口句柄()

参数:

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

举例:

窗口.顶层窗口句柄()


详细举例

整型

字符型

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

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

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

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



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



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

命名空间: 窗口

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

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

参数:

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

举例:

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


详细举例

整型

字符型

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

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

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

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


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



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

命名空间: 窗口

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

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

参数:

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

举例:

窗口.焦点窗口()

详细举例

整型 焦点窗口句柄 

字符型

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

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

辅助.消息框(内容)

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

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


枚举

功能原型:

系统.枚举(名称,类型)

功能说明:

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

功能举例:

返回值=系统.枚举("计算器",0)

辅助.消息框(返回值)

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




进程


功能原型:

进程.获取窗口句柄(handle,type=0)

功能说明:

通过进程相关信息获取窗口句柄,type:0 通过进程句柄,1 通过进程PID

功能举例:

handle=进程.打开("d:\\MF\\wow.exe")

进程.等待初始化(hanlde,1000)

hwnd=进程.获取窗口句柄(handle)

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




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

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

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

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


然后引用命名空间.

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





大漠

查找符合类名或者标题名



函数简介:

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

函数原型:

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

示例:

hwndts.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()








标签:匹配,句柄,枚举,捕捉,整型,字符串,窗口,TC
From: https://blog.51cto.com/u_16218512/7013061

相关文章

  • 使用ICTCLAS分词器 Java版
      ICTCLAS分词器 汉语词法分析系统ICTCLAS(InstituteofComputingTechnology,ChineseLexicalAnalysisSystem),主要功能包括中文分词;词性标注;命名实体识别;新词识别;同时支持用户词典。 词是最小的能够独立活动的有意义的语言成分,但汉语是以字为基本的书写单位,词语之间......
  • LeetCode 热题 100 之 240. 搜索二维矩阵 II
    题目编写一个高效的算法来搜索mxn矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例一输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target=5......
  • Atcoder ABC307_G-Approximate Equalization 序列dp
    AT_ABC307_G-ApproximateEqualization没想到还有ApproximateEqualizationII!!:AT_ABC313_CDescription:给定一个长度为\(N\)的数列:\(A=(A_1,A_2,···,A_N)\),有两种操作可以以任意顺序进行任意多次(可以为0):\(A[i]-\)=\(1\)且\(A[i+1]+\)=\(1\),\((1\leqi\leqN-1)......
  • [SIGMOD 2020]In-Memory Subgraph Matching An In-depth Study
    In-MemorySubgraphMatching:AnIn-depthStudy一篇subgraphmatching的survey总结文章共分析了8中代表性的内存式子图匹配算法,在过滤、排序、扩展、优化四个方面做了对比。定义文中的重要符号表生成树的概念:生成树是一个连通图的最小连通子图问题定义子图同构问题是......
  • UESTC 2023 Summer Training #23 for div2/2022-2023 ACM-ICPC Latin American Region
    Preface今天这场签到巨多,和昨天那场形成了鲜明的对比但可惜后盘的时候我划了太久的水,最后接了B题然后没调出来成为战俘最气的是赛后发现原来是没注意输出格式,本来可以说一遍过的题结果没写过,属实可惜,就当长教训了以后一定要尤其注意输入输出格式A.AskingforMoneyORZ徐......
  • TCP/IP 五层模型
    TCP/IP五层模型物理层(PhysicalLayer):物理层是最底层,负责传输比特流(bitstream)以及物理介质的传输方式。它定义了如何在物理媒介上传输原始的比特流,例如通过电缆、光纤或无线传输等。数据链路层(DataLinkLayer):数据链路层位于物理层之上,负责在直接相连的节点之间传输数据帧(Fra......
  • AtCoder-ARC073_A Sentou
    Sentou【题意】:有一个开关,当按下开关后的T秒内会一直放水,当在放水状态时,如果有人再次按下开关,那么停止放水,并从按下的那一刻起的T秒会再次一直放水,给出n个人按压开关的时间,问总共流出多少水【思路】:简单模拟#include<bits/stdc++.h>usingnamespacestd;typedeflon......
  • springbatch remote partition
    SpringBatch远程分区demo*使用框架版本<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.han</groupId> <......
  • Profibus DP主站转Modbus TCP网关profibus主站和从站的数据交互方式
    捷米JM-DPM-TCP网关。这款产品在Profibus总线侧实现了主站功能,在以太网侧实现了ModbusTcp服务器功能,为我们的工业自动化网络带来了全新的可能。捷米JM-DPM-TCP网关是如何实现这些功能的呢?首先,让我们来看看它的Profibus总线侧的主站功能。通过高效的通信协议和稳定的硬件设计,这款......
  • linux安装tcping工具包
    一、需求  tcping集成了ping和telnet的功能,有些时候为了直接测试网络和端口是否可达,可以考虑直接安装这个工具二、安装步骤2.1下载tcping工具和上传 2.2解压安装 2.3安装编译工具   由于没有外网,首先需要搭建本地yum源,备份本地repo文件,新建本地yum文件 ......