天使插件VIP版

插件接口:ts.tssoft

天使插件VIP功能使用说明

特权码绑定

注：默认绑定后锁定外部鼠标键盘,如要解除锁定请绑定后,自行调用LockInput接口进行解除锁定,解锁后外部键盘鼠标就可以操作窗口,图色,鼠标,键盘相关操作都必须绑定窗口后,操作才会生效,未来绑定窗口的操作可能出现未知的情况

更新日志:

v4.019

1、增加 SetSimMode接口

2、增加 超级键盘(支持win7 64系统)

3、增加 超级鼠标(支持win7 64系统)

v4.018

1、新增 WaitKey

2、优化 TSGuardProtectToHide函数、TSGuardProtectToHide2函数,支持保护指定的进程,需要通过TSGuardProtect函数先设置进程PID

3、新增 FindMultiColor

4、新增 FindMultiColoEx

5、修复 找图的时候对纯色图片返回x,y错误的bug

v4.017

1、修复 4.016版本前台图色无法识别的bug

2、修复 某些游戏只有一次按键有效的bug

3、修复 识别,找字在某些情况下识别错误的bug(例如一字与_的关系的时候)

v4.016

1、优化dx鼠标在部分游戏下leftdown的执行按下效果

2、增加 normal前台鼠标

3、增加 normal键盘

v4.015

1、修复 dx图色模式下找字的时候,要找的字数量过多引起崩溃的bug

2、修复 dx,gdi,dx2,gdi2图色模式下某些字出现漏识别的bug

3、修复 图色模式的操作的范围起始点大于窗口范围引起崩溃的bug

4、修复 IsDisplayDead返回值错误的bug

v4.014

1、修复 v4.013dx图色模式在XP下不刷新的bug

2、增加 GDI2l图色模式,某些游戏GDI图色不刷新的时候可以尝试使用此模式

3、增加 CheckUAC SetUAC

4、修复 window模式下GetCursorPos无法获取坐标的bug

5、修复 window模式下MoveR无法移动鼠标的bug

6、某些 游戏在GDI图色模式不刷新的情况可以用使用dx2或者gdi2模式

v4.013

1、优化 识字,找字的准确性(对大号字体的兼容性)

2、增加 图色dx2模式

3、修复 getClientRect返回值错误的bug

4、优化 203绑定模式对异常的处理

5、修复 normal,gdi图色模式部分游戏找图、找色、识字、找字失败的bug

6、修复 dx图色模式下找色失败的bug

v4.012

1、修复 识字、找字系列接口相似度低于1.0引起崩溃的bug

2、修复 MoveToEx 返回的坐标超过指定范围的bug

v4.011

1、 由于更换了验证服务器,4.011版之前的所有VIP功能将全部失效,请下载最新版

2、强力优化识字、找字系列接口的识别准确率(特别对不规则字体的兼容),全面兼容大漠字库工具制作的字库

v4.010

1、新增 接口MoveToEx

2、新增 接口EnableRealMouse

3、新增 接口EnableRealKeypad

4、优化 某些窗口绑定dx模式崩溃的bug

v4.009

1、修复 4.008版本下normal图色模式找图返回坐标不正确的bug

2、增加 绑定模式203(驱动绑定模式)

3、强力优化 normal,gdi,dx图色模式下,所有图色相关接口的运行速度和执行的效率

v4.008

1、优化 GetMousePointWindow

2、修复FindColor,GetColor在图色normal模式下,获色,找色出现不准确的bug

3、新增 绑定模式201(驱动绑定模式)

4、新增CheckFontSmooth

5、新增DisableFontSmooth

6、新增 GetScreenData

7、修复 FindPicEx 按不同方向找图错误的bug

v4.007

1、优化机器码算法,使用新版本的需要重新绑定机器码(使用了特权码跟注册码的用户一定要注意重新绑定机器)

2、修复 在normal模式下,图色操作返回的坐标改为相对客户区坐标

3、修复 0模式成功绑定后解绑 其他模式无法再次绑定的bug

4、修复 某些字无法识别的bug

5、新增 TSDXKmProtect盾接口(能绑定的系统都兼容，包括WIN7,WIN8，X64系统)

v4.006

1、新加 接口FreeProcessMemory

2、新增 TSDXGraphicProtect盾接口(能绑定的系统都兼容，包括WIN7,WIN8，X64系统)

3、修复 4.005版本FindPic接口在找多图的时候，返回值都为0的BUG

4、修复 4.005版本部分DX后台按键无效的BUG

v4.005
1、修复 dx图色找图找字偶尔找不到的bug
2、新增 接口SetPicPwd(字库图片加密功能在天使测试工具的字库图片加密菜单中,4.005的版本)
3、修复 FindPicEx不能返回找到的多个图的bug
4、新增 接口LeftDoubleClick
5、在normal模式下,图色操作返回的坐标改为相对客户区坐标

v4.004
1、修复101模式多线程绑定,只能第一次成功的bug
2、新增 接口SetDictPwd(可以测试工具的辅助功能下拉框选项加密字库密码,设置字库的时候先设置字库密码也在此处)
3、修复 dx键盘与功能键冲突的bug

v4.003
1、新增 接口delay不阻塞UI
2、新增 接口FindStrS
3、新增 接口FindStrFastS
4、新增 接口FindStrExS
5、新增 接口FindStrFastExS
6、新增 接口FindPicS
7、新增 接口FindPicExS
8、新增 TSGuardProtectToNP盾对win764位系统的支持
9、优化 FindStrFastEx模糊找字准确性
10、修复 Ocr系列接口,FindStr系列接口,FindStrFast系列接口在部分游戏下崩溃的bug
11、修复 部分DX游戏能截图无法找字、识别、找图的bug
12、绑定模式兼容 win8X86 X64绑定

v4.002
1、修复 部分游戏键盘dx模式下无法发送数字键的bug
2、新增 天使盾TSGuardProtectToNP
3、修复 部分游戏鼠标dx模式影响外部鼠标移动的bug
4、修复 CmpColor,GetColor获取部分颜色错误的bug
5、修复 部分游戏解绑崩溃的bug

v4.001
1、优化 Ocr FindStr FindStrFast识别的准确率
2、优化 返回字符串的相关接口稳定性(相关接口会引起程序直接退出例如Ver(),GetPath())
3、优化 FindStrEx FindStrFastEx 对同一个字出现多次的返回值的处理
4、新增 接口TSGuardProtectToHide
5、新增 接口TSGuardProtectToHide2
6、新增 接口Reg
7、新增 接口GetMachineCode(获取本机机器码)
8、修复 某些游戏dx绑定会影响外部鼠标操作的bug


使用说明

TS插件使用方法

TS插件遵循COM规范编写支持任何高级语言调用

1、注册插件.

使用TS之前,首先必须得先注册TS—>注册
方法1: 开始->运行-> "Regsvr32 c:\\TSPlug.dll"
方法2: 用TC自带的 "TC插件辅助工具" 注册
方法3: 用TC注册命令 help.regdll("c:\\TSPlug.dll",true)

2、创建对象.

插件注册成功以后,我们接下来要做的工具就是如何使用插件里的功能—>创建对象
方法1: ts=com("ts.tssoft")
(注意:这里创建的对象在TC里面是区分大小写的)

3、调用接口.

插件注册成功了,对象也创建成功了,接下来我们就可以开始工了—>接口的调用
代码还是TC的代码,简单写两个吧，大家都懂的
ret=ts.BindWindow(hwnd,"dx","dx","dx",0)
if(ret==1)
help.messagebox("绑定成功")
else
help.messagebox("绑定失败")
endif


TC4.0多线程使用示例

TS在多线程操作的时候,支持一个对象绑定操作一个窗口,也支持多个线程操作一个对象,同时也支持多个对象绑定操作同一个窗口,但是任意一个对象解绑,其他绑定该窗口的对象将全部一起解绑,还有个问题要注意，因为毕竟是多线程，键鼠的操作都是异步的，那么很可能出现键鼠 在多个线程中冲突的可能，这个问题没法解决，多线程势必会有这样的问题。只能建议少在子线程中 做键鼠的操作,或者自己实现线程间的同步异步处理(例如:TC的临界区)

TC4.0多线程使用示例

function 插件注册()
//注册插件,返回true表示成功,false表示失败
ret=help.regdll("c:\\TSPlug.dll",true)
if(ret==true)
help.messagebox("注册成功")
endif
endfunction

function 接口调用()
//下面是创建对象,在这里对象可以是全局的,也可以是局部的
ts=com("ts.tssoft")
//简单的接口的调用
版本号=ts.Ver()
help.messagebox(版本号)
//带参数的接口调用
ret=ts.FindWindows("","TC")
endfunction

//下面是TC4.0多线程调用TS的示例

namespace tc4调用TS示例
//默认空间
ts=array[1]
hwnd
//退出按钮_点击操作
function exit_click()
//通过类名枚举窗口句柄
TT=com("ts.tssoft")
hwnds = TT.EnumWindow(0,"TC简单开发","TXGuiFoundation",1+2)
//分割窗口句柄
str.split(hwnds,",",hwnd)
count
//判断窗口句柄的个数
arraysp.size(hwnd,count)
//重新定义对象数组的大小
ts=arraysp.alloc(ts,false,count)

//通过循环对进行一个线程一个对象的操作一个窗口的操作
//TC是支持跨线程调用对象的,在做验证码识别什么的等等检测的时候，
//只要再开一个线程就可以了,并不要去做什么多次绑定窗口的操作
for(i=0;i<count;i++)
ts[i]=com("ts.tssoft")
thread.beginthread("tc4调用TS示例.局部对象线程",i)
endfor
endfunction

//先展示的是局部对象多线程的调用
function 局部对象线程(count)
//先查看一下TS的版本
//下面我们操作的是多窗口的绑定
ret=ts[count].BindWindow(hwnd[count],"gdi","windows","windows",1)
if(ret==0)
help.messagebox("失败")
else
help.messagebox("成功")
ts[count].SetWindowState(hwnd[count],1)
tc4调用TS示例.发送字符(ts[count],hwnd[count])
endif

endfunction

function 发送字符(对象,winhwnd)
对象.KeyPressStr(winhwnd)
endfunction

endnamespace
//空间结束


天使插件VIP使用说明

天使插件VIP版本除天使盾系列接口之外的其他接口全部免费,天使插件的VIP功能包括天使盾,天使盾主要针一些游戏的检测与保护,天使盾初步引入了两种防检测机制,可防止市面上百分之九十的检测,而且具有强力的过驱动保护功能, 开启天使盾可以确保天使内存系列接口和汇编接口、窗口系列接口可以正常运行,后续将继续开发更强力的防检测机制,敬请期待

使用插件的VIP版本功能分二种使用模式:

1、特权模式

特权模式可以免费使用天使插件VIP的所有功能,使用的机器的数量与用户的TC VIP等级相关。

首先我们打开TC简单开发工具进入

会员服务中心 -> 插件高级功能 -> 特权码机器码管理

我的账号已经在特权机器码管理绑定的一台免费使用的机器,还剩余一台免费的机器可以绑定,绑定之后通过天使插件的Reg接口注册就可以在那台绑定过的机器无限制使用天使插件的VIP功能了

机器码的获取有两种方式:

1、通过天使插件的GetMachIneCode()接口获取

2、通过插件压缩包里面的 获取机器码.exe 获取

2、注册码模式

此模式在购买TC注册码的时候,只需要勾选上天使插件的服务,就可以通过天使插件的Reg接口验证并使用天使插件的VIP功能

下面我们打开TC简单开发工具进入

会员服务中心 -> 注册码系统 -> 购买注册码

购买成功后,我们进入到注册码管理,就可以看到包含天使插件VIP服务注册码是有TS标识的

接下来我们就可以用使用的Reg接口验证注册码,使用天使插件的VIP功能


查找窗口 - FindWindow

函数简介:

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

函数原型:

int FindWindow(string class,string title)

参数定义:

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

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

返回值:

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

示例:

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


通过进程找窗口 - FindWindowByProcess

函数简介:

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

函数原型:

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

参数定义:

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

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

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

返回值:

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

示例:

hwnd = ts.FindWindowByProcess("noteapd.exe","","记事本")


扩展找窗口 - FindWindowEx

函数简介:

查找符合类名或者标题名的顶层可见窗口,如果指定了parent,则在parent的第一层子窗口中查找.

函数原型:

int FindWindowEx(string parent,string class,string title)

参数定义:

parent 整型数: 父窗口句柄，如果为空，则匹配所有顶层窗口

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

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

返回值:

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

示例:

hwnd = ts.FindWindowEx(0,"","记事本")


发送字符串 - SendString

函数简介:

向指定窗口发送文本数据

函数原型:

int SendString(int hwnd,string str)

参数定义:

hwnd 整型数: 指定的窗口句柄

str 字符串: 发送的文本数据

返回值:

整型数:
0: 失败
1: 成功

示例:

ts.SendString(hwnd,"我是来测试的")


发送字符串2 - SendString2

函数简介:

向指定窗口发送文本数据

函数原型:

int SendString2(int hwnd,string str)

参数定义:

hwnd 整型数: 指定的窗口句柄

str 字符串: 发送的文本数据

返回值:

整型数:
0: 失败
1: 成功

示例:

ts.SendString2(hwnd,"我是来测试的")


发送字符串(IME模式) - SendStringIme

函数简介:

向绑定的窗口发送文本数据.

函数原型:

int SendStringIme(string str)

参数定义:

str 字符串: 发送的文本数据

返回值:

整型数:
0: 失败
1: 成功

示例:

ts_ret = ts.BindWindow(hwnd,"normal","windows","windows",1)
ts.SendStringIme("我是来测试的")


获取窗口 - GetWindow

函数简介:

获取给定窗口相关的窗口句柄

函数原型:

int GetWindow(int hwnd,int flag)

参数定义:

hwnd 整型数: 窗口句柄

flag 整型数: 取值定义如下

0 : 获取父窗口

1 : 获取第一个子窗口

2 : 获取First 窗口

3 : 获取Last窗口

4 : 获取下一个窗口

5 : 获取上一个窗口

6 : 获取拥有者窗口

7 : 获取顶层窗口

返回值:

整型数:
返回整型表示的窗口句柄

示例:

own_hwnd = ts.GetWindow(hwnd,6)


获取窗口标题 - GetWindowTitle

函数简介:

获取窗口的标题

函数原型:

string GetWindowTitle(int hwnd)

参数定义:

hwnd 整型数: 指定的窗口句柄

返回值:

字符串:
窗口的标题

示例:

title = ts.GetWindowTitle(hwnd)


获取窗口类名 - GetWindowClass

函数简介:

获取窗口的类名

函数原型:

string GetWindowClass(int hwnd)

参数定义:

hwnd 整型数: 指定的窗口句柄

返回值:

字符串:
窗口的类名

示例:

class_name = ts.GetWindowClass(hwnd)


获取窗口区域 - GetWindowRect

函数简介:

获取窗口在屏幕上的位置

函数原型:

int GetWindowRect(int hwnd,int x1,int y1,int x2,int y2)

参数定义:

hwnd 整型数: 指定的窗口句柄

x1 变参指针: 返回窗口左上角X坐标

y1 变参指针: 返回窗口左上角Y坐标

x2 变参指针: 返回窗口右下角X坐标

y2 变参指针: 返回窗口右下角Y坐标

返回值:

整型数:
0: 失败
1: 成功

示例:

ts_ret = ts.GetWindowRect(hwnd,x1,y1,x2,y2)


获取窗口所在路径 - GetWindowProcessPath

函数简介:

获取指定窗口所在的进程的exe文件全路径.

函数原型:

string GetWindowProcessPath(int hwnd)

参数定义:

hwnd 整型数: 窗口句柄

返回值:

字符串:
返回字符串表示的是exe全路径名

示例:

process_path = ts.GetWindowProcessPath(hwnd)


获取窗口状态 - GetWindowState

函数简介:

获取指定窗口的一些属性

函数原型:

int GetWindowState(int hwnd,int flag)

参数定义:

hwnd 整型数: 指定的窗口句柄

flag 整型数: 取值定义如下

0 : 判断窗口是否存在

1 : 判断窗口是否处于激活

2 : 判断窗口是否可见

3 : 判断窗口是否最小化

4 : 判断窗口是否最大化

5 : 判断窗口是否置顶

6 : 判断窗口是否无响应

7 : 判断窗口是否可用(灰色为不可用)

返回值:

整型数:
0: 不满足条件
1: 满足条件

示例:

ts_ret = ts.GetWindowState(hwnd,3)
if(ts_ret == 1)
help.messagebox("已经最小化")
endif


获取到客户区域 - GetClientRect

函数简介:

获取窗口客户区域在屏幕上的位置

函数原型:

int GetClientRect(int hwnd,int x1,int y1,int x2,int y2)

参数定义:

hwnd 整型数: 指定的窗口句柄

x1 变参指针: 返回窗口客户区左上角X坐标

y1 变参指针: 返回窗口客户区左上角Y坐标

x2 变参指针: 返回窗口客户区右下角X坐标

y2 变参指针: 返回窗口客户区右下角Y坐标

返回值:

整型数:
0: 失败
1: 成功

示例:

x1,y1,x2,y2
ts_ret = ts.GetClientRect(hwnd,x1,y1,x2,y2)


获取顶层窗口句柄 - GetForegroundWindow

函数简介:

获取顶层活动窗口

函数原型:

int GetForegroundWindow()

参数定义:

返回值:

整型数:
返回整型表示的窗口句柄

示例:

hwnd = ts.GetForegroundWindow()


获取焦点所在窗口 - GetForegroundFocus

函数简介:

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

函数原型:

int GetForegroundFocus()

参数定义:

返回值:

整型数:
返回整型表示的窗口句柄

示例:

hwnd = ts.GetForegroundFocus()


获取进程ID - GetWindowProcessId

函数简介:

获取指定窗口所在的进程ID.

函数原型:

int GetWindowProcessId(int hwnd)

参数定义:

hwnd 整型数: 窗口句柄

返回值:

整型数:
返回整型表示的是进程ID

示例:

process_id = ts.GetWindowProcessId(hwnd)


获取进程信息 - GetProcessInfo

函数简介:

根据指定的pid获取进程详细信息,(进程名,进程全路径,CPU占用率(百分比),内存占用量(字节))

函数原型:

string GetProcessInfo(int pid)

参数定义:

pid 整型数: 进程pid

返回值:

字符串:
格式"进程名|进程路径|cpu|内存"

示例:

infos =
ts.GetProcessInfo(1348)
info=array[]
str.split(infos,"|",info)
help.messagebox("进程名:"&info[0])
help.messagebox("进程路径:"&info[1])
help.messagebox("进程CPU占用率(百分比):"&info[2])
help.messagebox("进程内存占用量(字节):"&info[3])

注: 有些时候有保护的时候，此函数返回内容会错误


获取客户区大小 - GetClientSize

函数简介:

获取窗口客户区域的宽度和高度

函数原型:

int GetClientSize(int hwnd,int width,int height)

参数定义:

hwnd 整型数: 指定的窗口句柄

width 变参指针: 宽度

height 变参指针: 高度

返回值:

整型数:
0: 失败
1: 成功

示例:

int h,w
ts_ret = ts.GetClientSize(hwnd,w,h)
help.messagebox("宽"&w&",高"&h)


获取鼠标所在窗口句柄 - GetMousePointWindow

函数简介:

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

函数原型:

int GetMousePointWindow()

参数定义:

返回值:

整型数:
返回整型表示的窗口句柄

示例:

hwnd = ts.GetMousePointWindow()


获取特殊窗口 - GetSpecialWindow

函数简介:

获取特殊窗口

函数原型:

int GetSpecialWindow(int flag)

参数定义:

Flag 整型数: 取值定义如下

0 : 获取桌面窗口

1 : 获取任务栏窗口

返回值:

整型数:
以整型数表示的窗口句柄

示例:

desk_win = ts.GetSpecialWindow(0)


获取指定坐标窗口 - GetPointWindow

函数简介:

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

函数原型:

int GetPointWindow(int x,int y)

参数定义:

X 整型数: 屏幕X坐标

Y 整型数: 屏幕Y坐标

返回值:

整型数:
返回整型表示的窗口句柄

示例:

hwnd = ts.GetPointWindow(100,100)


枚举窗口 - EnumWindow

函数简介:

根据指定条件,枚举系统中符合条件的窗口,可以枚举到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))


枚举进程 - EnumProcess

函数简介:

根据指定进程名,枚举系统中符合条件的进程PID,并且按照进程打开顺序排序.

函数原型:

string EnumProcess(name)

参数定义:

name 字符串:进程名,比如qq.exe

返回值:

字符串 :
返回所有匹配的进程PID,并按打开顺序排序,格式"pid1,pid2,pid3"

示例:

pids = ts.EnumProcess("notepad.exe")
str=array[]
str.split(pids,",",str)

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

这里注意, pids数组里的是字符串,要用于使用,还得强制类型转换


枚举进程窗口 - EnumWindowByProcess

函数简介:

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

函数原型:

string EnumWindowByProcess(string process_name,string title,string class_name,int filter)

参数定义:

process_name 字符串: 进程映像名.比如(svchost.exe). 此参数是精确匹配,但不区分大小写.

title 字符串: 窗口标题. 此参数是模糊匹配.

class_name 字符串: 窗口类名. 此参数是模糊匹配.

filter 整型数: 取值定义如下

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

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

4 : 只匹配指定映像的所对应的第一个进程. 可能有很多同映像名的进程，只匹配第一个进程的.

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

16 : 匹配可见的窗口

这些值可以相加,比如4+8+16

返回值:

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

示例:

hwnds = ts.EnumWindowByProcess("game.exe","天龙八部","",1+8+16)

这句是获取到所有标题栏中有"天龙八部"这个字符串的窗口句柄集合,并且所在进程是"game.exe"指定的进程集合.

hwnd=array[]
str.split(hwnds,",",hwnd)

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

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


屏幕坐标转客户区坐标 - ScreenToClient

函数简介:

把屏幕坐标转换为窗口坐标

函数原型:

int ScreenToClient(int hwnd,int x,int y)

参数定义:

hwnd 整型数: 指定的窗口句柄

x 变参指针: 屏幕X坐标

y 变参指针: 屏幕Y坐标

返回值:

整型数:
0: 失败
1: 成功

示例:

x = 100
y = 100
ts_ret = ts.ScreenToClient(hwnd,x,y)


设置窗口标题 - SetWindowText

函数简介:

设置窗口的标题

函数原型:

int SetWindowText(int hwnd,string title)

参数定义:

hwnd 整型数: 指定的窗口句柄

titie 字符串: 标题

返回值:

整型数:
0: 失败
1: 成功

示例:

ts_ret = ts.SetWindowText(hwnd,"test")


设置窗口大小 - SetWindowSize

函数简介:

设置窗口的大小

函数原型:

int SetWindowSize(int hwnd,int width,int height)

参数定义:

hwnd 整型数: 指定的窗口句柄

width 整型数: 宽度

height 整型数: 高度

返回值:

整型数:
0: 失败
1: 成功

示例:

ts_ret = ts.SetWindowSize(hwnd,300,400)


设置窗口状态 - SetWindowState

函数简介:

设置窗口的状态

函数原型:

int SetWindowState(int hwnd,int flag)

参数定义:

hwnd 整型数: 指定的窗口句柄

flag 整型数: 取值定义如下

0 : 关闭指定窗口

1 : 激活指定窗口

2 : 最小化指定窗口,但不激活

3 : 最小化指定窗口,并释放内存

4 : 最大化指定窗口,同时激活窗口.

5 : 恢复指定窗口 ,但不激活

6 : 隐藏指定窗口

7 : 显示指定窗口

8 : 置顶指定窗口

9 : 取消置顶指定窗口

10 : 禁止指定窗口

11 : 取消禁止指定窗口

12 : 恢复并激活指定窗口

13 : 强制结束窗口所在进程.

14 : 闪烁指定的窗口

15 : 使指定的窗口获取输入焦点

返回值:

整型数:
0: 失败
1: 成功

示例:

ts_ret = ts.SetWindowState(hwnd,0)


获取剪切板内容 - GetClipboard

函数简介:

获取剪贴板的内容

函数原型:

string GetClipboard()

参数定义:

返回值:

字符串:
以字符串表示的剪贴板内容

示例:

help.messagebox(ts.GetClipboard())


发送剪切版内容 - SendPaste

函数简介:

向指定窗口发送粘贴命令. 把剪贴板的内容发送到目标窗口.

函数原型:

int SendPaste(int hwnd)

参数定义:

hwnd 整型数: 指定的窗口句柄

返回值:

整型数:
0: 失败
1: 成功

示例:

ts.SetClipboard("abcd")
ts.SendPaste(hwnd)

注:剪贴板是公共资源，多个线程同时设置剪贴板时,会产生冲突，必须用互斥信号保护.


设置剪切板 - SetClipboard

函数简介:

设置剪贴板的内容

函数原型:

long SetClipboard(string value)

参数定义:

value 字符串: 以字符串表示的剪贴板内容

返回值:

整型数:
0 : 失败
1 : 成功

示例:

ts.SetClipboard("abcd")


设置客户区大小 - SetClientSize

函数简介:

设置窗口客户区域的宽度和高度

函数原型:

int SetClientSize(int hwnd,int width,int height)

参数定义:

hwnd 整型数: 指定的窗口句柄

width 整型数: 宽度

height 整型数: 高度

返回值:

整型数:
0: 失败
1: 成功

示例:

ts_ret = ts.SetClientSize(hwnd,800,600)


设置透明度 - SetWindowTransparent

函数简介:

设置窗口的透明度

函数原型:

int SetWindowTransparent(int hwnd,int trans)

参数定义:

hwnd 整型数: 指定的窗口句柄

trans 整型数: 透明度 取值(0-255) 越小透明度越大 0为完全透明(不可见) 255为完全显示(不透明)

返回值:

整型数:
0: 失败
1: 成功

示例:

ts_ret = ts.SetWindowTransparent(hwnd,200)

注 : 此接口不支持WIN98


无标题文档

函数简介:

移动指定窗口到指定位置

函数原型:

int MoveWindow(int hwnd,int x,int y)

参数定义:

hwnd 整型数: 指定的窗口句柄

x 整型数: X坐标

y 整型数: Y坐标

返回值:

整型数:
0: 失败
1: 成功

示例:

ts.MoveWindow(hwnd,-10,-10)


保护 - TSGuardProtect

函数简介:

<此接口为VIP功能>这个保护可以在有保护的游戏中,确保天使内存系列接口和汇编接口、窗口系列接口可以正常运行

注：部分安装有驱动精灵、金山、安全卫士,会导致部分盾开启失败,请卸载重启后再开盾

函数原型:

int TSGuardProtect(int enable,string type)

参数定义:

enable 整型数: 0表示关闭保护盾,1表示打开保护盾.

type 字符串: 此参数可以为进程PID,也可以为空

返回值:

整型数:
0 : 失败
1 : 成功

示例:

ts.TSGuardProtect(1,"")

暂时只支持winxp$32 win2003$32 win7$32
360卫士，金山毒霸共存的机器 不能调用此接口.
此接口调用的时候 可能会生产几秒的延时.

注 : 此函数最好在目标进程打开之前调用即可。调用一次即可。
功能概述：在某些游戏窗口有保护的情况下，某些功能无法正常执行(例如获取窗口句柄、内存操作等功能)时，可尝试使用此功能
在某些窗口使用101模式或者1模式 绑定失败时，可尝试在游戏启动前使用此功能。


保护 - TSGuardProtect

函数简介:

<此接口为VIP功能>这个保护可以在有保护的游戏中,确保天使内存系列接口和汇编接口、窗口系列接口可以正常运行,并且保护指定进程以及进程内的窗口不被非法访问以及隐藏进程

注：部分安装有驱动精灵、金山、安全卫士,会导致部分盾开启失败,请卸载重启后再开盾

函数原型:

int TSGuardProtectToHide(int enable)

参数定义:

enable 整型数: 0表示关闭保护盾,1表示打开保护盾.

返回值:

整型数:
0 : 失败
1 : 成功

示例:

ts.TSGuardProtectToHide(1)

暂时只支持winxp$32 win2003$32 win7$32
360卫士，金山毒霸共存的机器 不能调用此接口.
此接口调用的时候 可能会生产几秒的延时.

注 : 此函数最好在目标进程打开之前调用即可。调用一次即可。
功能概述：在某些游戏窗口有保护的情况下，某些功能无法正常执行(例如获取窗口句柄、内存操作等功能)时，可尝试使用此功能
在某些窗口使用101模式或者1模式 绑定失败时，可尝试在游戏启动前使用此功能。


TSGuardProtectToHide2 - 隐藏进程防检测盾2

函数简介:

<此接口为VIP功能>这个保护可以在有保护的游戏中,确保天使内存系列接口和汇编接口、窗口系列接口可以正常运行 ,且保护指定进程以及进程内的窗口不被非法访问,但不隐藏进程

注：部分安装有驱动精灵、金山、安全卫士,会导致部分盾开启失败,请卸载重启后再开盾

函数原型:

int TSGuardProtectToHide2(int enable)

参数定义:

enable 整型数: 0表示关闭保护盾,1表示打开保护盾.

返回值:

整型数:
0 : 失败
1 : 成功

示例:

ts.TSGuardProtectToHide2(1)

暂时只支持winxp$32 win2003$32 win7$32
360卫士，金山毒霸共存的机器 不能调用此接口.
此接口调用的时候 可能会生产几秒的延时.

注 : 此函数最好在目标进程打开之前调用即可。调用一次即可。
功能概述：在某些游戏窗口有保护的情况下，某些功能无法正常执行(例如获取窗口句柄、内存操作等功能)时，可尝试使用此功能
在某些窗口使用101模式或者1模式 绑定失败时，可尝试在游戏启动前使用此功能。


TSGuardProtectToNP - 过NP保护

函数简介:

<此接口为VIP功能>这个保护可以在有NP保护下,天使插件键盘鼠标后台可以正常运行. 另还可以在部分窗口函数失效时或者绑定函数失败时使用此保护盾.(比如移动窗口等),保证后台窗口功能正常.(此模式需要加载驱动,支持32和win7 X64系统)

函数原型:

int TSGuardProtectToNP(int enable)

参数定义:

enable 整型数: 0表示关闭保护盾,1表示打开保护盾.

返回值:

整型数:
0 : 失败
1 : 成功

示例:

ts.TSGuardProtectToNP(1)

暂时只支持winxp$32 win2003$32 win7$32
360卫士，金山毒霸共存的机器 不能调用此接口.
此接口调用的时候 可能会生产几秒的延时.

注 : 此函数最好在目标进程打开之前调用即可。调用一次即可。
功能概述：在某些游戏窗口有保护的情况下，某些功能无法正常执行(例如获取窗口句柄、内存操作等功能)时，可尝试使用此功能
在某些窗口使用101模式或者1模式 绑定失败时，可尝试在游戏启动前使用此功能。


TSDXKmProtect - 防DX键鼠检测盾

函数简介:

<此接口为VIP功能>这个盾可以保护dx键鼠不被恶意检测，DX键鼠绑定后的防检测功能。（注：这个功能接口并非全局有效，每一个对象必须在绑定窗口前调用一次才会有效）

函数原型:

int TSDXKmProtect(int enable,string type)

参数定义:

enable 整型数: 0表示关闭保护盾,1表示打开保护盾.
type 字符型: 参数具体内容可以是以下任意一个.
" " :此参数可为空字符串,表示不开启dx.anti.api保护
"dx.anti.api" : 此模式可以突破部分窗口对后台的保护(此属性可能会导致部分后台功能失效).

返回值:

整型数:
0 : 失败
1 : 成功

示例:
ts=com("ts.tssoft")

ts.TSDXKmProtect(1,"dx.anti.api")

ts.BindWindow(hwnd,"dx","dx","dx",1)

系统支持winxp$32， win2003$32， win7$32 ，win7$64，win8$32，win8$64


TSGuardProtectToNP - 过NP保护

函数简介:

<此接口为VIP功能>这个盾可以保护支持DX图色的游戏，DX图色绑定后的防检测功能。（注：这个功能接口并非全局有效，每一个对象必须在绑定窗口前调用一次才会有效）

函数原型:

int TSDXGraphicProtect(int enable)

参数定义:

enable 整型数: 0表示关闭保护盾,1表示打开保护盾.

返回值:

整型数:
0 : 失败
1 : 成功

示例:
ts=com("ts.tssoft")

ts.TSDXGraphicProtect(1)

ts.BindWindow(hwnd,"dx","dx","dx",1)

系统支持winxp$32， win2003$32， win7$32 ，win7$64，win8$32，win8$64


绑定 - BindWindow

函数简介:

绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式,以及模式设定

函数原型:

int BindWindow(int hwnd,string display,string mouse,string keypad,int mode)

参数定义:

hwnd 整型数: 指定的窗口句柄

display 字符串: 屏幕颜色获取方式 取值有以下几种

"normal" : 正常模式,平常我们用的前台截屏模式

"dx" : dx模式
注意此模式需要管理员权限
此模式支持部分游戏最小化找图,不支持的游戏,如果强行最小化,会出现脚本卡死的情况,窗口显示正常后，脚本即可恢复正常

"gdi" :gdi模式
注意此模式需要把窗口移到屏幕之外，否则会出现刷新不正常

"gdi2" : gdi2模式,此模式兼容性较强,但是速度比gdi模式要慢许多,如果gdi模式发现后台不刷新时,可以考虑用gdi2模式.

"dx2" : dx2模式,用于窗口采用dx模式刷新,如果dx方式会出现窗口所在进程崩溃的状况,可以考虑采用这种.采用这种方式要保证窗口有一部分在屏幕外.win7 win8或者vista不需要移动也可后台.此模式占用CPU较大.

mouse 字符串: 鼠标仿真模式 取值有以下几种

normal" : 正常模式,平常我们用的前台鼠标模式

"dx": dx模式,采用模拟dx后台鼠标模式,这种方式会锁定鼠标输入.

"windows": Windows模式,采取模拟windows消息方式

keypad 字符串: 键盘仿真模式 取值有以下几种

normal" : 正常模式,平常我们用的前台键盘模式

"dx": dx模式,采用模拟dx后台键盘模式。
注意此模式需要管理员权限

"windows": Windows模式,采取模拟windows消息方式

mode 整型数: 模式。 取值有以下两种

0 : 推荐模式此模式比较通用，而且后台效果是最好的. (此模式退出前,必须先解绑,否则游戏可能异常)

1 : 和模式0效果一样，如果模式0会失败时，可以尝试此模式.

101 : 超级绑定模式. 可隐藏目标进程中的TSPlug.dll.避免被恶意检测.推荐使用.

 201 : 驱动级绑定模式.(绑定前需要先开启TSGuardProtect或者TSGuardProtectToHide或者TSGuardProtectToHide2中的任意
一个盾,否则有保护的窗口将会绑定失败,由于目前现在现在天使盾暂时只兼容32位系统,64系统无法开盾,对于有保
护的窗口也会失败,没有保护的窗口也可以绑定)

 203 : 驱动级绑定模式.可隐藏目标进程中的TSPlug.dll.避免被恶意检测.推荐使用.(绑定前需要先开启TSGuardProtect
或者TSGuardProtectToHide或者TSGuardProtectToHide2中的任意一个盾,否则有保护的窗口将会绑定
失败,由于目前现在现在天使盾暂时只兼容32位系统,64系统无法开盾,对于有保
护的窗口也会失败,没有保护的窗口也可以绑定)
注：部分安装有驱动精灵、金山、安全卫士,会导致部分盾开启失败,请卸载重启后再开盾

返回值:

整型数:
0: 失败
1: 成功

示例:

ret=ts.BindWindow(hwnd,"dx","dx","dx",1)
ret=ts.BindWindow(hwnd,"gdi","dx","dx",1)

注意:

绑定之后,所有的坐标都相对于窗口的客户区坐标(不包含窗口边框)
另外,绑定窗口后,必须加以下代码,以保证所有资源正常释放

如果在线程调用此函数，线程关闭会自动释放资源，如果不是在线程调用此函数，程序结束时必须调用以下代码，以释放资源
ret=ts.UnBindWindow()

另外绑定dx会比较耗时间,请不要频繁调用此函数.

另外如果绑定的是dx,要注意不可连续操作dx,中间至少加个10MS的延时,否则可能会导致操作失败.比如绑定图色DX,那么不要连续取色等,键鼠也是一样.

注意,图色dx,鼠标dx以及键盘dx都需要管理员权限才能运行,所以对于WIN7和VISTA用户,在启动目标窗口时,必须用管理员方式启动,否则无法绑定成功！

还有一点特别要注意的是,有些窗口绑定之后必须加一定的延时,否则后台也无效.一般1秒到2秒的延时就足够.

发现绑定失败的几种可能(一般是需要管理员权限的模式才有可能会失败)

1. 系统登录的帐号必须有Administrators权限

2. 如果是vista和win7系统，启动窗口进程必须用管理员模式启动，脚本也必须用管理员模式启动.

3. 一些防火墙会防止插件注入窗口所在进程，比如360防火墙等，必须把ts.dll设置为信任.

4. 还有一个比较弱智的可能性，那就是插件没有注册到系统中，这时创建对象 压根就是失败的. 检测对象是否创建成功很简单，如下代码

5. if(help.isregister("ts.tssoft"))
help.messagebox("已经注册")
else
help.messagebox("没有注册")
endif

6. 窗口所在进程有保护，这个我也无能为力.


解绑 - UnBindWindow

函数简介:

解除绑定窗口,并释放系统资源.一般在程序退出的时候调用(如果BindWindow是在线程中调用的，则关闭线程会自动释放资源，需调用此函数)

函数原型:

int UnBindWindow()

参数定义:

返回值:

整型数:
0:失败
1:成功

示例:

ret=ts.UnBindWindow()


降cpu - DownCpu

函数简介:

降低目标窗口所在进程的CPU占用

函数原型:

long DownCpu(int rate)

参数定义:

rate 整型数: 取值范围0到100 取值为0 表示关闭CPU优化. 这个值越大表示降低CPU效果越好.

返回值:

整型数:
0: 失败
1: 成功

示例:

ts_ret = ts.BindWindow(hwnd,"dx","windows","windows","",0)
ts.DownCpu(50)

注意: 此接口必须在绑定窗口成功以后调用，而且必须保证目标窗口可以支持 dx刷新模式,否则降低CPU无效.

因为降低CPU是通过降低窗口刷新速度来实现，所以注意，开启此功能以后会导致窗口刷新速度变慢.


锁定鼠标键盘 - LockInput

函数简介:

禁止外部输入到指定窗口

函数原型:

long LockInput(int lock)

参数定义:

lock 整型数: 0关闭锁定
1 开启锁定(键盘鼠标都锁定)
2 只锁定鼠标
3 只锁定键盘

返回值:

整型数:
0: 失败
1: 成功

示例:

ret=ts.BindWindow(hwnd,"dx","dx","dx",1)
ts.LockInput(1)
// 这里做需要锁定输入做的事情
ts.LockInput(0)

注意:此接口只针对dx键鼠. 普通键鼠无效.

在脚本处理过程中，在某个时候需要临时锁定外部输入，以免外部干扰，那么这个函数就非常有用.

比如某个信息，需要鼠标移动到某个位置才可以获取，但这时，如果外部干扰，那么很可能就会获取失败，所以，这时候就很有必要锁定外部输入.

当然，锁定完以后，记得要解除锁定，否则外部永远都无法输入了，除非解除了窗口绑定.


是否绑定 - IsBind

函数简介:

判定指定窗口是否已经被后台绑定. (前台无法判定)

函数原型:

long IsBind(int hwnd)

参数定义:

hwnd 整型数: 窗口句柄

返回值:

整型数:
0: 没绑定,或者窗口不存在.
1: 已经绑定.

示例:

ret = ts.IsBind(hwnd)


无标题文档

函数简介:

键盘动作模拟真实操作,点击延时随机.

函数原型:

int EnableRealKeypad(int enable)

参数定义:

enable 整形数: 0 关闭模拟
1 开启模拟

返回值:

整形数:
0: 失败
1: 成功

示例:

ts.EnableRealKeypad(1)

ts.KeyPressChar("E")

注: 此接口对KeyPress KeyPressChar KeyPressStr起作用。具体表现是键盘按下和弹起的间隔会在
当前设定延时的基础上,上下随机浮动50%. 假如 设定的键盘延时是100,那么这个延时可能就是50-150之间的一个值.

设定延时的函数是 SetKeypadDelay


无标题文档

函数简介:

鼠标动作模拟真实操作,带移动轨迹,以及点击延时随机.

函数原型:

int EnableRealMouse(int enable,int mousedelay,int mousestep)

参数定义:

enable 整形数: 0 关闭模拟
1 开启模拟

mousedelay 整形数: 单位是毫秒. 表示在模拟鼠标移动轨迹时,每移动一次的时间间隔.这个值越大,鼠标移动越慢.

Mousestep 整形数: 表示在模拟鼠标移动轨迹时,每移动一次的距离. 这个值越大，鼠标移动越快速.

返回值:

整形数:
0: 失败
1: 成功

示例:

ts.EnableRealMouse(1,20,30)

ts.MoveTo(100,100)
ts.MoveTo(500,500)

注: 此接口同样对LeftClick RightClick MiddleClick起作用。具体表现是鼠标按下和弹起的间隔会在
当前设定延时的基础上,上下随机浮动50%. 假如 设定的鼠标延时是100,那么这个延时可能就是50-150之间的一个值.

设定延时的函数是 SetMouseDelay


按键 - KeyPress

函数简介:

按下指定的虚拟键码

函数原型:

int KeyPress(int vk_code)

参数定义:

vk_code 整型数:虚拟按键码

返回值:

整型数:
0:失败
1:成功

示例:

int ret=ts.KeyPress(13)


无标题文档

函数简介:

等待指定的按键按下 (前台,不是后台)

函数原型:

int WaitKey(int vk_code,int time_out)

参数定义:

vk_code 整型数:虚拟按键码
time_out 整型数:等待多久,单位毫秒. 如果是0，表示一直等待

返回值:

整型数:
0:超时
1:指定的按键按下

示例:

ts=com("ts.tssoft")
ts.WaitKey(66,0)


按键(char) - KeyPressChar

函数简介:

按下指定的虚拟键码key_str

函数原型:

int KeyPressChar(string key_str)

参数定义:

key_str 字符串: 字符串描述的键码. 大小写无所谓.

返回值:

整型数:
0:失败
1:成功

示例:

ts.KeyPressChar("enter")
ts.KeyPressChar("1")
ts.KeyPressChar("F1")
ts.KeyPressChar("a")
ts.KeyPressChar("B")


按键(str) - KeyPressStr

函数简介:

根据指定的字符串序列，依次按顺序按下其中的字符.

函数原型:

int KeyPressStr(string key_str,int delay)

参数定义:

key_str 字符串: 需要按下的字符串序列. 比如"1234","abcd","7389,1462"等.

delay 整型数: 每按下一个按键，需要延时多久. 单位毫秒.这个值越大，按的速度越慢。

返回值:

整型数:
0:失败
1:成功

示例:

ts.KeyPressStr("123,456",20)

注: 在某些情况下，SendString和SendString2都无法输入文字时，可以考虑用这个来输入.

但这个接口只支持"a-z 0-9 ~-=[]\;',./"和空格,其它字符一律不支持.(包括中国)


获取鼠标特征码 - GetCursorShape

函数简介:

获取鼠标特征码.

函数原型:

string GetCursorShape()

参数定义:

返回值:

字符型:
返回鼠标特征码

示例:

ret=ts.GetCursorShape()

注:并非所有的游戏都支持后台鼠标特征码,在获取特征码之前,需先操作鼠标


无标题文档

函数简介:

把鼠标移动到目的范围内的任意一点

函数原型:

string MoveToEx(x,y,w,h)

参数定义:

x 整形数:X坐标
y 整形数:Y坐标
w 整形数:宽度(从x计算起)
h 整形数:高度(从y计算起)

返回值:

字符串:
返回要移动到的目标点. 格式为x,y. 比如MoveToEx(100,100,10,10),返回值可能是101,102

示例:

//移动鼠标到(100,100)到(110,110)这个矩形范围内的任意一点.
ret=ts.MoveToEx(100,100,10,10)

注: 此函数的意思是移动鼠标到指定的范围(x,y,x+w,y+h)内的任意随机一点.


获取鼠标位置 - GetCursorPos

函数简介:

获取鼠标位置.

函数原型:

int GetCursorPos(int x,int y)

参数定义:

x 变参指针: 返回X坐标
y 变参指针: 返回Y坐标

返回值:

整型数:
0 : 失败
1 : 成功

示例:

x,y
ts.GetCursorPos(x,y)
help.messagebox(x&","&y)

注: 此接口绑定后使用，获取的是相当游戏窗口的鼠标坐标


键盘按住 - KeyDown

函数简介:

按住指定的虚拟键码

函数原型:

long KeyDown(vk_code)

参数定义:

vk_code 整型数:虚拟按键码

返回值:

整型数:
0:失败
1:成功

示例:

int ret=ts.KeyDown(13)


键盘按住(char) - KeyDownChar

函数简介:

按住指定的虚拟键码key_str

函数原型:

int KeyDownChar(string key_str)

参数定义:

key_str 字符串: 字符串描述的键码. 大小写无所谓.

返回值:

整型数:
0:失败
1:成功

示例:

ts.KeyDownChar("enter")
ts.KeyDownChar("1")
ts.KeyDownChar("F1")
ts.KeyDownChar("a")
ts.KeyDownChar("B")


键盘弹起 - KeyUp

函数简介:

弹起来虚拟键vk_code

函数原型:

int KeyUp(int vk_code)

参数定义:

vk_code 整型数:虚拟按键码

返回值:

整型数:
0:失败
1:成功

示例:

int ret=ts.KeyUp(13)


键盘弹起(char) - KeyUpChar

函数简介:

弹起来虚拟键key_str

函数原型:

int KeyUpChar(string key_str)

参数定义:

key_str 字符串: 字符串描述的键码. 大小写无所谓.

返回值:

整型数:
0:失败
1:成功

示例:

ts.KeyUpChar("enter")
ts.KeyUpChar("1")
ts.KeyUpChar("F1")
ts.KeyUpChar("a")
ts.KeyUpChar("B")


相对移动 - MoveR

函数简介:

鼠标相对于上次的位置移动rx,ry

函数原型:

int MoveR(int rx,int ry)

参数定义:

rx 整型数:相对于上次的X偏移
ry 整型数:相对于上次的Y偏移

返回值:

整型数:
0:失败
1:成功

示例:

ts.MoveR(rx,ry)


移动 - MoveTo

函数简介:

把鼠标移动到目的点(x,y)

函数原型:

int MoveTo(int x,int y)

参数定义:

x 整型数:X坐标
y 整型数:Y坐标

返回值:

整型数:
0:失败
1:成功

示例:

ret=ts.MoveTo(200,300)


右键按下 - RightDown

函数简介:

按住鼠标右键

函数原型:

int RightDown()

参数定义:

返回值:

整型数:
0:失败
1:成功

示例:

ret=ts.RightDown()


右键弹起 - RightUp

函数简介:

弹起鼠标右键

函数原型:

int RightUp()

参数定义:

返回值:

整型数:
0:失败
1:成功

示例:

ret=ts.RightUp()


右键点击 - RightClick

函数简介:

按下鼠标右键

函数原型:

int RightClick()

参数定义:

返回值:

整型数:
0:失败
1:成功

示例:

ret=ts.RightClick()


中键点击 - MiddleClick

函数简介:

按下鼠标中键

函数原型:

int MiddleClick()

参数定义:

返回值:

整型数:
0:失败
1:成功

示例:

ret=ts.MiddleClick()


中键上滚 - WheelUp

函数简介:

滚轮向上滚

函数原型:

int WheelUp()

参数定义:

返回值:

整型数:
0:失败
1:成功

示例:

ret=ts.WheelUp()


中键下滚 - WheelDown

函数简介:

滚轮向下滚

函数原型:

int WheelDown()

参数定义:

返回值:

整型数:
0:失败
1:成功

示例:

ret=ts.WheelDown()


左键按下 - LeftDown

函数简介:

按住鼠标左键

函数原型:

int LeftDown()

参数定义:

返回值:

整型数:
0:失败
1:成功

示例:

ret=ts.LeftDown()


左键弹起 - LeftUp

函数简介:

弹起鼠标左键

函数原型:

int LeftUp()

参数定义:

返回值:

整型数:
0:失败
1:成功

示例:

ret=ts.LeftUp()


左键点击 - LeftClick

函数简介:

按下鼠标左键

函数原型:

int LeftClick()

参数定义:

返回值:

整型数:
0:失败
1:成功

示例:

ret=ts.LeftClick()


鼠标左键双击 - LeftDoubleClick

函数简介:

双击鼠标左键

函数原型:

int LeftDoubleClick()

参数定义:

返回值:

整形数:
0:失败
1:成功

示例:

ts.LeftDoubleClick()


无标题文档

函数简介:

设置前台键鼠的模拟方式.支持win7 64位系统.不绑定也可以使用

函数原型:

int SetSimMode(mode)

参数定义:

mode 整形数: 0 正常模式(默认模式)
1 超级模拟(隐藏驱动)

返回值:

整形数:
0 : 插件没注册
1 : 成功

示例:

ts=com("ts.tssoft")
ts.SetSimMode(1)
…
ts_ret = ts.BindWindow(hwnd,"normal","normal","normal",0)
...
ts.UnBindWindow()

注:超级模拟方式需要加载驱动，所以调用进程必须有管理员权限.
加载驱动时，必须让安全软件放行. 否则模拟无效.
另外，此模拟没有对键鼠的接口类型有任何限制(PS/2 USB接口)都可以模拟，不插任何键鼠设备都可以模拟.


设置键盘操作间隔 - SetKeypadDelay

函数简介:

设置按键时,键盘按下和弹起的时间间隔。高级用户使用。某些窗口可能需要调整这个参数才可以正常按键。

函数原型:

int SetKeypadDelay(string type,int delay)

参数定义:

type 字符串: 键盘类型,取值有以下

"windows": 对应windows 键盘 默认内部延时为10ms

"dx" : 对应dx 键盘 默认内部延时为50ms

delay 整型数: 延时,单位是毫秒

返回值:

整型数:
0:失败
1:成功

示例:

ts.SetKeypadDelay("dx",10)

注 : 此函数影响的接口有KeyPress


设置鼠标操作间隔 - SetMouseDelay

函数简介:

设置鼠标单击时,鼠标按下和弹起的时间间隔。高级用户使用。某些窗口可能需要调整这个参数才可以正常点击。

函数原型:

int SetMouseDelay(string type,int delay)

参数定义:

type 字符串: 鼠标类型,取值有以下

"windows": 对应windows 鼠标 默认内部延时为 10ms

"dx" : 对应dx鼠标 默认内部延时为40ms

delay 整型数: 延时,单位是毫秒

返回值:

整型数:
0:失败
1:成功

示例:

ts.SetMouseDelay("dx",10)

注 : 此函数影响的接口有LeftClick RightClick MiddleClick


版本 - Ver

函数简介:

返回当前插件版本号

函数原型:

string Ver()

参数定义:

返回值:

字符串:
当前插件的版本描述字符串

示例:

// 返回版本号
ver=ts.Ver()
help.messagebox(ver)


Delay - 等待

函数简介:

延时指定的毫秒,过程中不阻塞UI操作. 一般高级语言使用.按键用不到.

函数原型:

int Delay(int mis)

参数定义:

mis整形数: 毫秒数.

返回值:

整形数:
0 : 失败

1 : 成功

示例:

ts.Delay(1000)

注: 由于是com组件,调用此函数必须保证调用线程的模型为STA.否则此函数会阻塞当前线程UI.


注册 - Reg

函数简介:

调用此函数注册，可使用插件的高级功能.推荐使用此函数.

函数原型:

long Reg(string reg_code,int type)

参数定义:

reg_code 字符串: 注册码(TC论坛->注册码->购买注册码)或者注册码账号,具体根据type类型决定

type 整型:
0: 表示特权模式(此模式是为TC的VIP用户提供的一个免费绑定的模式.详细请登陆:特权码管理页面)
1：此模式需要到TC论坛购买包含TS插件服务注册码

返回值:

整形数:
1：成功
0：失败(未知的错误)
-1：无法连接网络
-2：特权机器码不匹配
-3：非法的用户名或者用户不是VIP
-4：非法的注册码
-5：注册码没有TS服务
-6：过期的注册码
-7：冻结注册码
-8：已删除的注册码
-9：注册码已绑定

示例:

ts_ret = ts.Reg("abcdefg",0)
if(ts_ret==1)
help.messagebox("注册成功")
endif

注册码在TC会员中心注册码管理查看.

此函数每个进程调用一次即可，不需要每个TS象都调用.

必须保证此函数在创建完对象以后立即调用，尤其必须在绑定窗口之前调用，否则可能会出现异常.

如果有多个进程操作同个窗口，必须保证每个进程要么都调用Reg,要么都不要调用Reg，以免出现异常.


获取全局路径 - GetPath

函数简介:

获取全局路径.(可用于调试)

函数原型:

string GetPath()

参数定义:

返回值:

字符串:
以字符串的形式返回当前设置的全局路径

示例:

path=ts.GetPath()
help.messagebox(path)


设置全局路径 - SetPath

函数简介:

设置全局路径.

函数原型:

int SetPath(string Path)

参数定义:

返回值:

整型数:
0:失败
1:成功

示例:
ts.SetPath(help.getrcpath("rc:"))
path=ts.GetPath()
help.messagebox(path)


获取插件路径 - GetBasePath

函数简介:

获取注册在系统中的tsPlug.dll的路径.

函数原型:

string GetBasePath()

参数定义:

返回值:

字符串:
返回tsPlug.dll所在路径

示例:

base_path=ts.GetBasePath()
help.messagebox(base_path)


全局错误控制 - SetShowErrorMsg

函数简介:

设置是否弹出错误信息,默认是打开.

函数原型:

int SetShowErrorMsg (int show)

参数定义:

show 整形数: 0表示不打开,1表示打开

返回值:

整形数:
0 : 失败
1 : 成功

示例:

ret = ts.SetShowErrorMsg(0)


获取机器码 - GetMachineCode

函数简介:

获取本机的机器码. 此机器码用于网站后台. 要求调用进程必须有管理员权限. 否则返回空串.

函数原型:

string GetMachineCode()

参数定义:

返回值:

字符串:
字符串表达的机器机器码

示例:

machine_code = ts.GetMachineCode()

注: 此机器码包含的硬件设备有硬盘,显卡,网卡等. 其它不便透露. 重装系统不会改变此值.

另要注意,插拔任何USB设备,(U盘，U盾,USB移动硬盘,USB键鼠等),以及安装任何网卡驱动程序,(开启或者关闭无线网卡等)都会导致机器码改变.


截图BMP - Capture

函数简介:

抓取指定区域(x1, y1, x2, y2)的图像,保存为file(24位位图)

函数原型:

int Capture(int x1,int y1,int x2,int y2,string file)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
file 字符串:保存的文件名,保存的地方一般为SetPath中设置的目录

当然这里也可以指定全路径名.

返回值:

整型数:
0:失败
1:成功

示例:

i=ts.Capture(0,0,2000,2000,help.getrcpath("rc:")&"\\screen.bmp")


截图GIF - CaptureGif

函数简介:

抓取指定区域(x1, y1, x2, y2)的动画，保存为gif格式

函数原型:

long CaptureGif(int x1,int y1,int x2,int y2,string file,int delay,int time)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
file 字符串:保存的文件名,保存的地方一般为SetPath中设置的目录

当然这里也可以指定全路径名.
delay 整型数: 动画间隔，单位毫秒。 如果为0，表示只截取静态图片
time 整型数: 总共截取多久的动画，单位毫秒。

返回值:

整型数:
0:失败
1:成功

示例:

// 截取动画
ts_ret = ts.CaptureGif(0,0,2000,2000,"screen.gif",100,3000)

// 截取静态
ts_ret = ts.CaptureGif(0,0,2000,2000,"screen.gif",0,0)


截图JPG - CaptureJpg

函数简介:

抓取指定区域(x1, y1, x2, y2)的图像,保存为file(JPG压缩格式)

函数原型:

int CaptureJpg(int x1,int y1,int x2,int y2,string file)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
file 字符串:保存的文件名,保存的地方一般为SetPath中设置的目录

当然这里也可以指定全路径名.

返回值:

整型数:
0:失败
1:成功

示例:

i=ts.CaptureJpg(0,0,500,500,help.getrcpath("rc:")&"\\screen.jpg")


截图PNG - CapturePng

函数简介:

同Capture函数，只是保存的格式为PNG

函数原型:

int CapturePng(int x1,int y1,int x2,int y2,string file)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
file 字符串:保存的文件名,保存的地方一般为SetPath中设置的目录

当然这里也可以指定全路径名.

返回值:

整型数:
0:失败
1:成功

示例:

i=ts.CapturePng(0,0,2000,2000,help.getrcpath("rc:")&"\\screen.png")


取色 - GetColor

函数简介:

获取(x,y)的颜色,颜色返回格式"RRGGBB"

函数原型:

string GetColor(int x,int y)

参数定义:

x 整型数:X坐标
y 整型数:Y坐标

返回值:

字符串:
颜色字符串(注意这里都是小写字符，和工具相匹配)

示例:

color=ts.GetColor(30,30)
if(color== "ffffff")
help.messagebox("找到颜色ffffff")
endif


找色 - FindColor

函数简介:

查找指定区域内的颜色,颜色格式"RRGGBB-DRDGDB"

函数原型:

int FindColor(int x1,int y1,int x2,int y2,string color,double sim,int dir,int intX,int intY)

参数定义:

 x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
color 字符串:颜色 格式为"RRGGBB-DRDGDB",支持多偏色,比如"123456-000000|111fff-dddfff"
sim 浮点型:相似度,取值范围0.1-1.0
dir 整型数:查找方向 0: 从左到右,从上到下
1: 从左到右,从下到上
2: 从右到左,从上到下
3: 从右到左,从下到上
4：从中心往外查找
5: 从上到下,从左到右
6: 从上到下,从右到左
7: 从下到上,从左到右
8: 从下到上,从右到左
intX 变参指针:返回X坐标
intY 变参指针:返回Y坐标

返回值:

整型数:
返回找到的颜色的序号,从0开始索引.如果没找到返回-1

示例:

ret,intX,intY
ret=ts.FindColor(0,0,2000,2000,"123456-000000",1.0,0,intX,intY)
if(intX >= 0 && intY >= 0)
help.messagebox("找到")
endif


找图 - FindPic

函数简介:

查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理.

这个函数可以查找多个图片,只返回第一个找到的X Y坐标.

函数原型:

int FindPic(int x1,int y1,int x2,int y2,string pic_name,string delta_color,double sim,int dir,int intX,int intY)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
pic_name 字符串:图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
delta_color 字符串:颜色色偏比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示)
sim 浮点型:相似度,取值范围0.1-1.0
dir 整型数:查找方向 0: 从左到右,从上到下 1: 从左到右,从下到上 2: 从右到左,从上到下 3: 从右到左, 从下到上
intX 变参指针:返回图片左上角的X坐标
intY 变参指针:返回图片左上角的Y坐标

返回值:

整型数:
返回找到的图片的序号,从0开始索引.如果没找到返回-1

示例:

ret,intX,intY
ret= ts.FindPic(0,0,2000,2000,"1.bmp|2.bmp|3.bmp","000000",0.9,0,intX,intY)
if(intX >= 0 && intY >= 0)
help.messagebox("找到")
endif


FindPicS - 找图S

函数简介:

查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理.

这个函数可以查找多个图片,只返回第一个找到的X Y坐标. 此函数同FindPic.只是返回值不同.

函数原型:

int FindPicS(int x1,int y1,int x2,int y2,string pic_name,string delta_color,double sim,int dir,int intX,int intY)

参数定义:

x1 整形数:区域的左上X坐标
y1 整形数:区域的左上Y坐标
x2 整形数:区域的右下X坐标
y2 整形数:区域的右下Y坐标
pic_name 字符串:图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
delta_color 字符串:颜色色偏 比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示)
sim 双精度浮点数:相似度,取值范围0.1-1.0
dir 整形数:查找方向 0: 从左到右,从上到下 1: 从左到右,从下到上 2: 从右到左,从上到下 3: 从右到左, 从下到上
intX 变参指针:返回图片左上角的X坐标
intY 变参指针:返回图片左上角的Y坐标

返回值:

字符串:
返回找到的图片的文件名. 没找到返回长度为0的字符串.

示例:

ret,intX,intY
ret= ts.FindPic(0,0,2000,2000,"1.bmp|2.bmp|3.bmp","000000",0.9,0,intX,intY)
if(intX >= 0 && intY >= 0)
help.messagebox("找到")
endif


扩展找图 - FindPicEx

函数简介:

查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理.

这个函数可以查找多个图片,并且返回所有找到的图像的坐标.

函数原型:

string FindPicEx(int x1,int y1,int x2,int y2,string pic_name,string delta_color,double sim,int dir)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
pic_name 字符串:图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
delta_color 字符串:颜色色偏 比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示)
sim 双精度浮点数:相似度,取值范围0.1-1.0
dir 整型数:查找方向 0: 从左到右,从上到下 1: 从左到右,从下到上 2: 从右到左,从上到下 3: 从右到左, 从下到上

返回值:

字符串:
返回的是所有找到的坐标格式如下:"id,x,y|id,x,y..|id,x,y" (图片左上角的坐标)

比如"0,100,20|2,30,40" 表示找到了两个,第一个,对应的图片是图像序号为0的图片,坐标是(100,20),第二个是序号为2的图片,坐标(30,40)
(由于内存限制,返回的图片数量最多为1500个左右)

示例:
ts_ret =
ts.FindPicEx(0,0,2000,2000,"test.bmp|test2.bmp|test3.bmp|test4.bmp|test5.bmp","020202",1.0,0)
if(str.strleng(ts_ret)>0)
str.split(ts_ret,"|",ss)
size=0
arraysp.size(ss,size)
for(i=0;i<size;i++)
help.messagebox(ss[i])
endfor
endif


无标题文档

函数简介:

查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理.

这个函数可以查找多个图片,并且返回所有找到的图像的坐标. 此函数同FindPicEx.只是返回值不同.

函数原型:

string FindPicExS(int x1,int y1,int x2,int y2,string pic_name,string delta_color,double sim,int dir)

参数定义:

x1 整形数:区域的左上X坐标
y1 整形数:区域的左上Y坐标
x2 整形数:区域的右下X坐标
y2 整形数:区域的右下Y坐标
pic_name 字符串:图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
delta_color 字符串:颜色色偏 比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示)
sim 双精度浮点数:相似度,取值范围0.1-1.0
dir 整形数:查找方向 0: 从左到右,从上到下 1: 从左到右,从下到上 2: 从右到左,从上到下 3: 从右到左, 从下到上

返回值:

字符串:
返回的是所有找到的坐标格式如下:"file,x,y| file,x,y..| file,x,y" (图片左上角的坐标)

比如"1.bmp,100,20|2.bmp,30,40" 表示找到了两个,第一个,对应的图片是1.bmp,坐标是(100,20),第二个是2.bmp,坐标(30,40)
(由于内存限制,返回的图片数量最多为1500个左右)

示例:

ts_ret = ts.FindPicExS(0,0,2000,2000,"test.bmp|test2.bmp|test3.bmp|test4.bmp|test5.bmp","020202",1.0,0)
if(str.strleng(ts_ret)>0)
str.split(ts_ret,"|",ss)
size=0
arraysp.size(ss,size)
for(i=0;i<size;i++)
help.messagebox(ss[i])
endfor
endif


是否卡屏 - IsDisplayDead

函数简介:

判断指定的区域，在指定的时间内(秒),图像数据是否一直不变.(卡屏).

函数原型:

long IsDisplayDead(int x1,int y1,int x2,int y2,int t)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
t 整型数:需要等待的时间,单位是秒

返回值:

整型数:
0 : 没有卡屏，图像数据在变化.
1 : 卡屏. 图像数据在指定的时间内一直没有变化.

示例:

help.messagebox(ts.IsDisplayDead(0,0,100,100,5))

注:此函数的原理是不停的截取指定区域的图像，然后比较，如果改变就立刻返回0,否则等待直到指定的时间到达.


取图色数据 - GetScreenData

函数简介:

获取指定区域的图像,用二进制数据的方式返回,（不适合按键使用）方便二次开发.

函数原型:

long GetScreenData(x1,y1,x2,y2)

参数定义:

x1 整形数:区域的左上X坐标
y1 整形数:区域的左上Y坐标
x2 整形数:区域的右下X坐标
y2 整形数:区域的右下Y坐标

返回值:

整形数:
返回的是指定区域的二进制颜色数据地址,每个颜色是4个字节,表示方式为(00RRGGBB)

示例:

无示例,开发者都懂的。


颜色比较 - CmpColor

函数简介:

比较指定坐标点(x,y)的颜色

函数原型:

int CmpColor(int x,int y,string color,double sim)

参数定义:

x 整型数: X坐标

y 整型数: Y坐标

color 字符串: 颜色字符串,可以支持偏色,多色,例如 "ffffff-202020|000000-000000" 这个表示白色偏色为202020,和黑色偏色为000000.颜色最多支持10种颜色组合. 注意，这里只支持RGB颜色.

sim 双精度浮点数: 相似度(0.1-1.0)

返回值:

整型数:
0: 颜色匹配
1: 颜色不匹配

示例:

ts_ret = ts.CmpColor(200,300,"000000-000000|ff00ff-101010",0.9)
if(ts_ret == 0)
help.messagebox("相等")
endif


扩展找色 - FindColorEx

函数简介:

查找指定区域内的所有颜色,颜色格式"RRGGBB-DRDGDB",注意,和按键的颜色格式相反

函数原型:

string FindColorEx(int x1,int y1,int x2,int y2,string color,double sim,int dir)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
color 字符串:颜色 格式为"RRGGBB-DRDGDB" 比如"aabbcc-000000|123456-202020".注意，这里只支持RGB颜色.
sim 双精度浮点数:相似度,取值范围0.1-1.0
dir 整型数:查找方向 0: 从左到右,从上到下
1: 从左到右,从下到上
2: 从右到左,从上到下
3: 从右到左,从下到上
5: 从上到下,从左到右
6: 从上到下,从右到左
7: 从下到上,从左到右
8: 从下到上,从右到左

返回值:

字符串:
返回所有颜色信息的坐标值(返回字符串限制长度为1024)

示例:

ret = ts.FindColorEx(0,0,2000,2000,"123456-000000|abcdef-202020",1.0,0)
坐标=array[]
count
str.split(ret,"|",坐标)
arraysp.size(ret,count)
for(i=0;i<count;i++)
help.messagebox(ret[i])
endfor


设置图片密码 - SetPicPwd

函数简介:

设置图片密码，如果图片本身没有加密，那么此设置不影响不加密的图片，一样正常使用,所有图片密码只通用一个. 图片加密与设置密码的功能在天使测试工具的字库图片加密菜单中

函数原型:

int SetPicPwd(string pwd)

参数定义:

pwd 字符串: 图片密码

返回值:

整形数:
0 : 失败

1 : 成功

示例:

ts_ret = ts.SetPicPwd("123")

注意,此函数必须在使用图片之前调用.


遍历bmp图片 - MatchPicName

函数简介:

根据通配符获取文件集合. 方便用于FindPic和FindPicEx

函数原型:

string MatchPicName(string pic_name)

参数定义:

pic_name 字符串: 文件名 比如"1.bmp|2.bmp|3.bmp" 等,可以使用通配符,比如

"*.bmp" 这个对应了所有的bmp文件

"a?c*.bmp" 这个代表了所有第一个字母是a 第三个字母是c 第二个字母任意的所有bmp文件

"abc???.bmp|1.bmp|aa??.bmp" 可以这样任意组合.

返回值:

字符串:
返回的是通配符对应的文件集合，每个图片以|分割

示例:

ret = ts.SetPath("d:\\ts")

all_pic = "abc*.bmp"
pic_name = ts.MatchPicName(all_pic)

// 比如d:\\ts目录下有abc001.bmp abc002.bmp abc003.bmp

// 那么pic_name 的值为abc001.bmp|abc002.bmp|abc003.bmp

*注意:此函数只支持遍历bmp格式的文件


无标题文档

函数简介:

根据指定的多点查找颜色坐标

函数原型:

int FindMultiColor(int x1,int y1,int x2,int y2,string first_color,string offset_color,double sim, int dir,int intX,int intY)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
first_color 字符串:颜色 格式为"RRGGBB-DRDGDB",比如"123456-000000"

所有的偏移色坐标都相对于此颜色.注意，这里只支持RGB颜色.
offset_color 字符串: 偏移颜色 可以支持任意多个点

格式为"x1|y1|RRGGBB-DRDGDB,……xn|yn|RRGGBB-DRDGDB"

比如"1|3|aabbcc,-5|-3|123456-000000"等任意组合都可以，支持偏色(但不支持多个偏色)

还可以支持反色模式，比如"1|3|-aabbcc,-5|-3|-123456-000000","-"表示除了指定颜色之外的颜色.

sim 双精度浮点数:相似度,取值范围0.1-1.0
dir 整型数:查找方向 0: 从左到右,从上到下 1: 从左到右,从下到上 2: 从右到左,从上到下 3: 从右到左, 从下到上
intX 变参指针:返回X坐标(坐标为first_color所在坐标)
intY 变参指针:返回Y坐标(坐标为first_color所在坐标)

返回值:

整型数:
0:没找到
1:找到

示例:

ts=com("ts.tssoft")
intX,intY
ts_ret = ts.FindMultiColor(0,0,2000,2000,"cc805b-020202","9|2|-00ff00,15|2|2dff1c-010101,6|11|a0d962,11|14|-ffffff",1.0,1,intX,intY)
if(ret==1)
ts.MoveTo(intX,intY)
endif


无标题文档

函数简介:

根据指定的多点查找所有颜色坐标

函数原型:

string FindMultiColorEx(int x1,int y1,int x2,int y2,string first_color,string offset_color,double sim,int dir)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
first_color 字符串:颜色 格式为"RRGGBB-DRDGDB",比如"123456-000000"

所有的偏移色坐标都相对于此颜色.注意，这里只支持RGB颜色.
offset_color 字符串: 偏移颜色 可以支持任意多个点 格式

格式为"x1|y1|RRGGBB-DRDGDB,……xn|yn|RRGGBB-DRDGDB"

比如"1|3|aabbcc,-5|-3|123456-000000"等任意组合都可以，支持偏色(但不支持多个偏色)

还可以支持反色模式，比如"1|3|-aabbcc,-5|-3|-123456-000000","-"表示除了指定颜色之外的颜色

sim 双精度浮点数:相似度,取值范围0.1-1.0
dir 整型数:查找方向 0: 从左到右,从上到下 1: 从左到右,从下到上 2: 从右到左,从上到下 3: 从右到左, 从下到上

返回值:

字符串:
返回所有颜色信息的坐标值,坐标是first_color所在的坐标

示例:

ts=com("ts.tssoft")
ts_ret = ts.FindMultiColorEx(0,0,2000,2000,"cc805b-020202","9|2|-00ff00,15|2|2dff 1c-010101,6|11|a0d962,11|14|-ffffff",1.0,1)
help.messagebox(ts_ret)


识字 - Ocr

函数简介:

识别屏幕范围(x1,y1,x2,y2)内符合color_format的字符串,并且相似度为sim,sim取值范围(0.1-1.0),

这个值越大越精确,越大速度越快,越小速度越慢,请斟酌使用!

函数原型:

string Ocr(int x1,int y1,int x2,int y2,string color_format,double sim)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
color_format 字符串:颜色格式串.支持多偏色. 具体可以查看下面的示例.
sim 双精度浮点数:相似度,取值范围0.1-1.0

返回值:

字符串:
返回识别到的字符串

示例:

//RGB单色识别
string s=ts.Ocr(0,0,2000,2000,"9f2e3f-000000",1.0)
help.messagebox(s)

//RGB单色差色识别
string s=ts.Ocr(0,0,2000,2000,"9f2e3f-030303",1.0)
help.messagebox(s)

注:如果要使用模糊识别,最好不要使用系统生成的那种很大的字库,否则速度会很慢.
可以自己建立字库,字库数量在1000以下,速度可以控制在1s左右.
当然如果没有必要模糊识别,最好把模糊度设置为1.0 ,这样的速度是最快的。
如果非要使用系统字库,可以考虑采用多字库

本插件文字识别的速度是建立在模糊度为1.0的基础上 模糊度小于1都会 极大的
降低识别效率。请谨慎使用. 因为文字识别要求精准，一般没人用模糊识别, 比如
"王"和"玉" 就差一个点，使用模糊就会导致识别失误。 所以大家还是尽量用 1.0的
精准识别。


扩展识字 - OcrEx

函数简介:

识别屏幕范围(x1,y1,x2,y2)内符合color_format的字符串,并且相似度为sim,sim取值范围(0.1-1.0),

这个值越大越精确,越大速度越快,越小速度越慢,请斟酌使用!

这个函数可以返回识别到的字符串，以及每个字符的坐标.

函数原型:

string OcrEx(int x1,int y1,int x2,int y2,string color_format,double sim)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
color_format 字符串:颜色格式串.
sim 双精度浮点数:相似度,取值范围0.1-1.0

返回值:

字符串:
返回识别到的字符串 格式如 "识别到的信息"字,x,y|…|字,x,y"

示例:

和Ocr函数相同，只是结果处理有所不同 如下

str=ts.OcrEx(0,0,2000,2000,"ffffff|000000",1.0)
ss
str.split(str,"|",ss)
count
arraysp.size(ss,count)
help.messagebox("总共识别到字:"&count,"OcrEx")
for(i=0;i<count;i++)
help.messagebox("第("&i&")的坐标是"&ss[i],"OcrEx")
endfor


找字 - FindStr

函数简介:

在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意个字符串的组合),并返回符合color_format的坐标位置,相似度sim同Ocr接口描述.

函数原型:

int FindStr(int x1,int y1,int x2,int y2,string string,string color_format,double sim,int intX,int intY)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
string 字符串:待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
color_format 字符串:颜色格式串, 支持多个偏色,具体可以查看下面的示例
sim 双精度浮点数:相似度,取值范围0.1-1.0
intX 变参指针:返回X坐标 没找到返回-1
intY 变参指针:返回Y坐标 没找到返回-1

返回值:

整型数:
返回字符串的索引 没找到返回-1, 比如"长安|洛阳",若找到长安，则返回0

示例:

x,y
ts_ret=ts.FindStr(0,0,2000,2000,"长安","9f2e3f-000000",1.0,x,y)
if(x>-1)
help.messagebox("找到的字：长安")
endif

x,y
ts_ret=ts.FindStr(0,0,2000,2000,"长安|洛阳","9f2e3f-000000",0.9,x,y)
if(x>-1)
help.messagebox("找到的字：长安")
endif

注: 此函数的原理是先Ocr识别，然后再查找。所以速度比FindStrFast要慢，尤其是在字库
很大，或者模糊度不为1.0时。

一般字库字符数量小于100左右，模糊度为1.0时，用FindStr要快一些,否则用FindStrFast.

注:如果要使用模糊识别,最好不要使用系统生成的那种很大的字库,否则速度会很慢.
可以自己建立字库,字库数量在1000以下,速度可以控制在1s左右.
当然如果没有必要模糊识别,最好把模糊度设置为1.0 ,这样的速度是最快的。
如果非要使用系统字库,可以考虑采用多字库

本插件文字识别的速度是建立在模糊度为1.0的基础上 模糊度小于1都会 极大的
降低识别效率。请谨慎使用. 因为文字识别要求精准，一般没人用模糊识别, 比如
"王"和"玉" 就差一个点，使用模糊就会导致识别失误。 所以大家还是尽量用 1.0的
精准识别。


FindStrS - 找字S

函数简介:

在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意个字符串的组合),并返回符合color_format的坐标位置,相似度sim同Ocr接口描述.

(多色,差色查找类似于Ocr接口,不再重述).此函数同FindStr,只是返回值不同.

函数原型:

int FindStrS(int x1,int y1,int x2,int y2,string string,string color_format,double sim,int intX,int intY)

参数定义:

x1 整形数:区域的左上X坐标
y1 整形数:区域的左上Y坐标
x2 整形数:区域的右下X坐标
y2 整形数:区域的右下Y坐标
string 字符串:待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
color_format 字符串:颜色格式串, 可以包含换行分隔符,语法是","后加分割字符串. 具体可以查看下面的示例 .注意，RGB和HSV格式都支持.
sim 双精度浮点数:相似度,取值范围0.1-1.0
intX 变参指针:返回X坐标 没找到返回-1
intY 变参指针:返回Y坐标 没找到返回-1

返回值:

字符串:
返回找到的字符串. 没找到的话返回长度为0的字符串.

示例:

x,y
ts_ret=ts.FindStrS(0,0,2000,2000,"长安","9f 2e3f -000000",1.0,x,y)
if(x>-1)
help.messagebox("找到的字：长安")
endif

x,y
ts_ret=ts.FindStrS(0,0,2000,2000,"长安|洛阳","9f2e3f -000000",0.9,x,y)
if(x>-1)
help.messagebox("找到的字：长安")
endif

注: 此函数的原理是先Ocr识别，然后再查找。所以速度比FindStrFastS要慢，尤其是在字库
很大，或者模糊度不为1.0时。

一般字库字符数量小于100左右，模糊度为1.0时，用FindStrS要快一些,否则用FindStrFastS.


扩展找字 - FindStrEx

函数简介:

在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意字符串的组合),并返回符合color_format的所有坐标位置,相似度sim同Ocr接口描述.

(多色,差色查找类似于Ocr接口,不再重述)

函数原型:

string FindStrEx(int x1,int y1,int x2,int y2,string string,string color_format,double sim)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
string 字符串:待查找的字符串, 可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
color_format 字符串:颜色格式串. 具体可以查看下面的示例.
sim 双精度浮点数:相似度,取值范围0.1-1.0

返回值:

字符串:
返回所有找到的坐标集合,格式如下:
"id,x0,y0|id,x1,y1|......|id,xn,yn"
比如"0,100,20|2,30,40" 表示找到了两个,第一个,对应的是序号为0的字符串,坐标是(100,20),第二个是序号为2的字符串,坐标(30,40)

示例:

ts_ret =
ts.FindStrEx(0,0,2000,2000,"北京|我|来了|亲|爱","020202-201020",1.0)
if(str.strleng(ts_ret)>0)
str.split(ts_ret,"|",ss)
size=0
arraysp.size(ss,size)
for(i=0;i<size;i++)
help.messagebox(ss[i])
endfor
endif

注: 此函数的原理是先Ocr识别，然后再查找。所以速度比FindStrExFast要慢，尤其是在字库
很大，或者模糊度不为1.0时。

一般字库字符数量小于100左右，模糊度为1.0时，用FindStrEx要快一些,否则用FindStrFastEx.


FindStrExS - 扩展找字S

函数简介:

在屏幕范围(x1,y1,x2,y2)内,查找string(可以是任意字符串的组合),并返回符合color_format的所有坐标位置,相似度sim同Ocr接口描述.

(多色,差色查找类似于Ocr接口,不再重述). 此函数同FindStrEx,只是返回值不同.

函数原型:

string FindStrExS(int x1,int y1,int x2,int y2,string string,string color_format,double sim)

参数定义:

x1 整形数:区域的左上X坐标
y1 整形数:区域的左上Y坐标
x2 整形数:区域的右下X坐标
y2 整形数:区域的右下Y坐标
string 字符串:待查找的字符串, 可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
color_format 字符串:颜色格式串, 可以包含换行分隔符,语法是","后加分割字符串. 具体可以查看下面的示例.注意，RGB和HSV格式都支持.
sim 双精度浮点数:相似度,取值范围0.1-1.0

返回值:

字符串:
返回所有找到的坐标集合,格式如下:
"str,x0,y0| str,x1,y1|......| str,xn,yn"
比如"长安,100,20|大雁塔,30,40" 表示找到了两个,第一个是长安 ,坐标是(100,20),第二个是大雁塔,坐标(30,40)

示例:

ts_ret =
ts.FindStrExS(0,0,2000,2000,"北京|我|来了|亲|爱","020202-201020",1.0)
if(str.strleng(ts_ret)>0)
str.split(ts_ret,"|",ss)
size=0
arraysp.size(ss,size)
for(i=0;i<size;i++)
help.messagebox(ss[i])
endfor
endif

注: 此函数的原理是先Ocr识别，然后再查找。所以速度比FindStrExFast要慢，尤其是在字库
很大，或者模糊度不为1.0时。

一般字库字符数量小于100左右，模糊度为1.0时，用FindStrEx要快一些,否则用FindStrFastEx.


快速找字 - FindStrFast

函数简介:

同FindStr。

函数原型:

int FindStrFast(int x1,int y1,int x2,int y2,string string,string color_format,double sim,int intX,int intY)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
string 字符串:待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
color_format 字符串:颜色格式串,支持多个偏色. 具体可以查看下面的示例.
sim 双精度浮点数:相似度,取值范围0.1-1.0
intX 变参指针:返回X坐标 没找到返回-1
intY 变参指针:返回Y坐标 没找到返回-1

返回值:

整型数:
返回字符串的索引 没找到返回-1, 比如"长安|洛阳",若找到长安，则返回0

示例:

x,y
ts_ret=ts.FindStrFast(0,0,2000,2000,"长安","9f2e3f-000000",1.0,x,y)
if(x>-1)
help.messagebox("找到的字：长安")
endif

x,y
ts_ret=ts.FindStrFast(0,0,2000,2000,"长安|洛阳","9f2e3f -000000",1.0,x,y)
if(ts_ret==0)
help.messagebox("找到的字：长安")
endif

注: 此函数比FindStr要快很多，尤其是在字库很大时，或者模糊识别时，效果非常明显。
推荐使用此函数。
另外由于此函数是只识别待查找的字符，所以可能会有如下情况出现问题。

比如 字库中有"张和三" 一共3个字符数据，然后待识别区域里是"张和三",如果用FindStr查找
"张三"肯定是找不到的，但是用FindStrFast却可以找到，因为"和"这个字符没有列入查找计划中
所以，在使用此函数时，也要特别注意这一点。

注:如果要使用模糊识别,最好不要使用系统生成的那种很大的字库,否则速度会很慢.
可以自己建立字库,字库数量在1000以下,速度可以控制在1s左右.
当然如果没有必要模糊识别,最好把模糊度设置为1.0 ,这样的速度是最快的。
如果非要使用系统字库,可以考虑采用多字库

本插件文字识别的速度是建立在模糊度为1.0的基础上 模糊度小于1都会 极大的
降低识别效率。请谨慎使用. 因为文字识别要求精准，一般没人用模糊识别, 比如
"王"和"玉" 就差一个点，使用模糊就会导致识别失误。 所以大家还是尽量用 1.0的
精准识别。


FindStrFastS - 快速找字S

函数简介:

同FindStrS.

函数原型:

int FindStrFastS(int x1,int y1,int x2,int y2,string string,string color_format,double sim,int intX,int intY)

参数定义:

x1 整形数:区域的左上X坐标
y1 整形数:区域的左上Y坐标
x2 整形数:区域的右下X坐标
y2 整形数:区域的右下Y坐标
string 字符串:待查找的字符串,可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
color_format 字符串:颜色格式串, 可以包含换行分隔符,语法是","后加分割字符串. 具体可以查看下面的示例 .注意，RGB和HSV格式都支持.
sim 双精度浮点数:相似度,取值范围0.1-1.0
intX 变参指针:返回X坐标 没找到返回-1
intY 变参指针:返回Y坐标 没找到返回-1

返回值:

字符串:
返回找到的字符串. 没找到的话返回长度为0的字符串.

示例:

x,y
ts_ret=ts.FindStrFastS(0,0,2000,2000,"长安","9f2e3f -000000",1.0,x,y)
if(x>-1)
help.messagebox("找到的字：长安")
endif

x,y
ts_ret=ts.FindStrFastS(0,0,2000,2000,"长安|洛阳","9f 2e 3f -000000",1.0,x,y)
if(ts_ret==0)
help.messagebox("找到的字：长安")
endif

注: 此函数比FindStr要快很多，尤其是在字库很大时，或者模糊识别时，效果非常明显。
推荐使用此函数。
另外由于此函数是只识别待查找的字符，所以可能会有如下情况出现问题。

比如 字库中有"张和三" 一共3个字符数据，然后待识别区域里是"张和三",如果用FindStr查找
"张三"肯定是找不到的，但是用FindStrFast却可以找到，因为"和"这个字符没有列入查找计划中
所以，在使用此函数时，也要特别注意这一点。

注:如果要使用模糊识别,最好不要使用系统生成的那种很大的字库,否则速度会很慢.
可以自己建立字库,字库数量在1000以下,速度可以控制在1s左右.
当然如果没有必要模糊识别,最好把模糊度设置为1.0 ,这样的速度是最快的。
如果非要使用系统字库,可以考虑采用多字库

本插件文字识别的速度是建立在模糊度为1.0的基础上 模糊度小于1都会 极大的
降低识别效率。请谨慎使用. 因为文字识别要求精准，一般没人用模糊识别, 比如
"王"和"玉" 就差一个点，使用模糊就会导致识别失误。 所以大家还是尽量用 1.0的
精准识别。


扩展快速找字 - FindStrFastEx

函数简介:

同FindStrEx

函数原型:

string FindStrFastEx(int x1,int y1,int x2,int y2,string string,string color_format,double sim)

参数定义:

x1 整型数:区域的左上X坐标
y1 整型数:区域的左上Y坐标
x2 整型数:区域的右下X坐标
y2 整型数:区域的右下Y坐标
string 字符串:待查找的字符串, 可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
color_format 字符串:颜色格式串. 具体可以查看下面的示例.
sim 双精度浮点数:相似度,取值范围0.1-1.0

返回值:

字符串:
返回所有找到的坐标集合,格式如下:
"id,x0,y0|id,x1,y1|......|id,xn,yn"
比如"0,100,20|2,30,40" 表示找到了两个,第一个,对应的是序号为0的字符串,坐标是(100,20),第二个是序号为2的字符串,坐标(30,40)

示例:

ts_ret =
ts.FindStrFastEx(0,0,2000,2000,"北京|我|来了","020202-201020",1.0)
if(str.strleng(ts_ret)>0)
str.split(ts_ret,"|",ss)
size=0
arraysp.size(ss,size)
for(i=0;i<size;i++)
help.messagebox(ss[i])
endfor
endif

注: 此函数比FindStrEx要快很多，尤其是在字库很大时，或者模糊识别时，效果非常明显。
推荐使用此函数。

另外由于此函数是只识别待查找的字符，所以可能会有如下情况出现问题。

比如 字库中有"张和三" 一共3个字符数据，然后待识别区域里是"张和三",如果用FindStrEx查找
"张三"肯定是找不到的，但是用FindStrFastEx却可以找到，因为"和"这个字符没有列入查找计划中
所以，在使用此函数时，也要特别注意这一点。


FindStrFastExS - 扩展快速找字S

函数简介:

同FindStrExS.

函数原型:

string FindStrFastExS(int x1,int y1,int x2,int y2,string string,string color_format,double sim)

参数定义:

x1 整形数:区域的左上X坐标
y1 整形数:区域的左上Y坐标
x2 整形数:区域的右下X坐标
y2 整形数:区域的右下Y坐标
string 字符串:待查找的字符串, 可以是字符串组合，比如"长安|洛阳|大雁塔",中间用"|"来分割字符串
color_format 字符串:颜色格式串, 可以包含换行分隔符,语法是","后加分割字符串. 具体可以查看下面的示例 .注意，RGB和HSV格式都支持.
sim 双精度浮点数:相似度,取值范围0.1-1.0

返回值:

字符串:
返回所有找到的坐标集合,格式如下:
"str,x0,y0| str,x1,y1|......| str,xn,yn"
比如"长安,100,20|大雁塔,30,40" 表示找到了两个,第一个是长安 ,坐标是(100,20),第二个是大雁塔,坐标(30,40)

示例:

ts_ret =
ts.FindStrFastExS(0,0,2000,2000,"北京|我|来了","020202-201020",1.0)
if(str.strleng(ts_ret)>0)
str.split(ts_ret,"|",ss)
size=0
arraysp.size(ss,size)
for(i=0;i<size;i++)
help.messagebox(ss[i])
endfor
endif

注: 此函数比FindStrEx要快很多，尤其是在字库很大时，或者模糊识别时，效果非常明显。
推荐使用此函数。

另外由于此函数是只识别待查找的字符，所以可能会有如下情况出现问题。

比如 字库中有"张和三" 一共3个字符数据，然后待识别区域里是"张和三",如果用FindStrEx查找
"张三"肯定是找不到的，但是用FindStrFastEx却可以找到，因为"和"这个字符没有列入查找计划中
所以，在使用此函数时，也要特别注意这一点。


切换字库 - UseDict

函数简介:

表示使用哪个字库文件进行识别(index范围:0-19)

设置之后，永久生效，除非再次设定(当前对象)

函数原型:

int UseDict(int index)

参数定义:

index 整型数:字库编号(0-19)

返回值:

整型数:
0:失败
1:成功

示例:

ts_ret=ts.UseDict(1)
ss=ts.Ocr(0,0,2000,2000,"FFFFFF-000000",1.0)
ts_ret=ts.UseDict(0)


设置字库 - SetDict

函数简介:

设置字库文件

函数原型:

int SetDict(int index,string file)

参数定义:

index 整型数:字库的序号,取值为0-19,目前最多支持20个字库
file 字符串:字库文件名

返回值:

整型数:
0:失败
1:成功

示例:

ts_ret=ts.SetDict(0,"test.txt")

注: 此函数速度很慢，全局初始化时调用一次即可，切换字库用<设置多个字库的时候>UseDict


设置密码 - SetDictPwd

函数简介:

设置字库的密码,在SetDict前调用,目前的设计是,所有字库通用一个密码. 字库加密与设置密码的功能在天使测试工具的字库图片加密菜单中

函数原型:

int SetDictPwd(string pwd)

参数定义:

pwd 字符串:字库密码

返回值:

整形数:
0:失败
1:成功

示例:

ts_ret = ts.SetDictPwd("1234")

注意:如果使用了多字库,所有字库的密码必须一样. 此函数必须在SetDict之前调用,否则会解密失败.


清空字库 - ClearDict

函数简介:

清空指定的字库.

函数原型:

int ClearDict(int index)

参数定义:

index 整型数:字库的序号,取值为0-19,目前最多支持20个字库

返回值:

整型数:
0:失败
1:成功

示例:

ts_ret=ts.ClearDict(0)

注意: 此函数尽量在小字库中使用

另外，此函数支持清空内存中的字库，而不是字库文件本身.


获取当前使用的字库ID - GetNowDict

函数简介:

获取当前使用的字库序号(0-9)

函数原型:

int GetNowDict()

参数定义:

返回值:

整型数:
字库序号(0-19)

示例:

index=ts.GetNowDict()
help.messagebox(index)


关闭平滑字体 - DisableFontSmooth

函数简介:

关闭当前系统屏幕字体平滑.同时关闭系统的ClearType功能.

函数原型:

long DisableFontSmooth()

参数定义:

返回值:

整形数:
0 : 失败

1 : 成功

示例:

if(ts.CheckFontSmooth () == 1)
if(ts.DisableFontSmooth() == 1)
help.messagebox("关闭了当前系统平滑字体,重启生效")
system.shutdown(2)
ts.Delay(2000)
help.exit()
endif
endif

注: 关闭之后要让系统生效，必须重启系统才有效.


检测平滑字体 - CheckFontSmooth

函数简介:

检测当前系统是否有开启屏幕字体平滑.

函数原型:

long CheckFontSmooth()

参数定义:

返回值:

整形数:
0 : 系统没开启平滑字体.

1 : 系统有开启平滑字体.

示例:

if(ts.CheckFontSmooth () == 1)
help.messagebox("当前系统有开启平滑字体")
endif


无标题文档

函数简介:

检测当前系统是否有开启UAC(用户账户控制).

函数原型:

int CheckUAC()

参数定义:

返回值:

整形数:
0 : 没开启UAC

1 : 开启了UAC

示例:

if(ts.CheckUAC==1)
调试输出("当前系统开启了用户账户控制")
endif

注: 只有WIN7 WIN8 VISTA WIN2008以及以上系统才有UAC设置


无标题文档

函数简介:

设置当前系统的UAC(用户账户控制).

函数原型:

int SetUAC(enable)

参数定义:

enable 整形数: 取值如下

0 : 关闭UAC
1 : 开启UAC

返回值:

整形数:
0 : 操作失败

1 : 操作成功

示例:

if(ts.SetUAC(0)==1)
调试输出("成功关闭了当前系统UAC设置")
endif

注: 只有WIN7 WIN8 VISTA WIN2008以及以上系统才有UAC设置. 关闭UAC以后，必须重启系统才会生效.

如果关闭了UAC，那么默认启动所有应用程序都是管理员权限，就不会再发生绑定失败这样的尴尬情况了.


内存找整型 - FindInt.htm

函数简介:

搜索指定的整数,默认步长是1.如果要定制步长，请用FindIntEx

函数原型:

string FindInt(int hwnd,string addr_range,int int_value_min,int int_value_max,int type)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr_range 字符串: 指定搜索的地址集合，字符串类型，这个地方可以是上次FindXXX的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)

如果要进行地址范围搜索，那么这个值为的形如如下(类似于CE的新搜索)

"00400000-7FFFFFFF" "80000000-BFFFFFFF" "00000000-FFFFFFFF" 等.

int_value_min 整型数: 搜索的整数数值最小值

int_value_max 整型数: 搜索的整数数值最大值

最终搜索的数值大与等于int_value_min,并且小于等于int_value_max

type 整型数: 搜索的整数类型,取值如下

0 : 32位

1 : 16 位

2 : 8位

返回值:

字符串:
返回搜索到的地址集合，地址格式如下:

"addr1|addr2|addr3…|addrn"

比如"400050|423435|453430"

示例:

// 全局搜索
result = ts.FindInt(hwnd,"00000000-FFFFFFFF",300,300,0)
if(result=="")
help.messagebox("没有找到")
endif
str
count
str.split(result,"|",str)
arraysp.size(str,count)
help.messagebox("找到"&count&"个地址")

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


内存找字符串 - FindString

函数简介:

搜索指定的字符串,默认步长是1.如果要定制步长，请用FindStringEx

函数原型:

string FindString(int hwnd,string addr_range,string string_value,int type)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr_range 字符串: 指定搜索的地址集合，字符串类型，这个地方可以是上次FindXXX的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)

如果要进行地址范围搜索，那么这个值为的形如如下(类似于CE的新搜索)

"00400000-7FFFFFFF" "80000000-BFFFFFFF" "00000000-FFFFFFFF" 等.

string_value 字符串: 搜索的字符串

type 整型数: 搜索的字符串类型,取值如下

0 : Ascii字符串

1 : Unicode字符串

返回值:

字符串:
返回搜索到的地址集合，地址格式如下:

"addr1|addr2|addr3…|addrn"

比如"400050|423435|453430"

示例:

// 全局搜索
result = ts.FindString(hwnd,"00000000-FFFFFFFF","息息相关",0)
if(result=="")
help.messagebox("没有找到")
endif
str
count
str.split(result,"|",str)
arraysp.size(str,count)
help.messagebox("找到"&count&"个地址")

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


内存找二进制数据 - FindData

函数简介:

搜索指定的二进制数据,默认步长是1.如果要定制步长，请用FindDataEx

函数原型:

string FindData(int hwnd,string addr_range,string data)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr_range 字符串: 指定搜索的地址集合，字符串类型，这个地方可以是上次FindXXX的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)

如果要进行地址范围搜索，那么这个值为的形如如下(类似于CE的新搜索)

"00400000-7FFFFFFF" "80000000-BFFFFFFF" "00000000-FFFFFFFF" 等.

data 字符串: 要搜索的二进制数据 以字符串的形式描述 比如"00 01 23 45 67 86 ab ce f1"等.
这里也可以支持模糊查找,用??来代替单个字节. 比如"00 01 ?? ?? 67 86 ?? ce f1"等.

返回值:

字符串:
返回搜索到的地址集合，地址格式如下:

"addr1|addr2|addr3…|addrn"

比如"400050|423435|453430"

示例:

// 全局搜索
result = ts.FindData(hwnd,"00000000-FFFFFFFF","00 01 23 45 67 86
ab ce f1")
if(result=="")
help.messagebox("没有找到")
endif
str
count
str.split(result,"|",str)
arraysp.size(str,count)
help.messagebox("找到"&count&"个地址")

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


内存找单精度小数 - FindFloat

函数简介:

搜索指定的单精度浮点数,默认步长是1.如果要定制步长，请用FindFloatEx

函数原型:

string FindFloat(int hwnd,string addr_range,double float_value_min,double float_value_max)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr_range 字符串: 指定搜索的地址集合，字符串类型，这个地方可以是上次FindXXX的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)

如果要进行地址范围搜索，那么这个值为的形如如下(类似于CE的新搜索)

"00400000-7FFFFFFF" "80000000-BFFFFFFF" "00000000-FFFFFFFF" 等.

float_value_min 单精度浮点数: 搜索的单精度数值最小值

float_value_max 单精度浮点数: 搜索的单精度数值最大值

最终搜索的数值大与等于float_value_min,并且小于等于float_value_max

返回值:

字符串:
返回搜索到的地址集合，地址格式如下:

"addr1|addr2|addr3…|addrn"

比如"400050|423435|453430"

示例:

// 全局搜索
result = ts.FindFloat(hwnd,"00000000-FFFFFFFF",0.5,1.0)
if(result=="")
help.messagebox("没有找到")
endif
str
count
str.split(result,"|",str)
arraysp.size(str,count)
help.messagebox("找到"&count&"个地址")

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


内存找双精度小数 - FindDouble

函数简介:

搜索指定的双精度浮点数,默认步长是1.如果要定制步长，请用FindDoubleEx

函数原型:

string FindDouble(int hwnd,string addr_range,double double_value_min,double double_value_max)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr_range 字符串: 指定搜索的地址集合，字符串类型，这个地方可以是上次FindXXX的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)

如果要进行地址范围搜索，那么这个值为的形如如下(类似于CE的新搜索)

"00400000-7FFFFFFF" "80000000-BFFFFFFF" "00000000-FFFFFFFF" 等.

double_value_min 双精度浮点数: 搜索的双精度数值最小值

double_value_max 双精度浮点数: 搜索的双精度数值最大值

最终搜索的数值大与等于double_value_min,并且小于等于double_value_max

返回值:

字符串:
返回搜索到的地址集合，地址格式如下:

"addr1|addr2|addr3…|addrn"

比如"400050|423435|453430"

示例:

// 全局搜索
result = ts.FindDouble(hwnd,"00000000-FFFFFFFF",0.5,1.0)
if(result=="")
help.messagebox("没有找到")
endif
str
count
str.split(result,"|",str)
arraysp.size(str,count)
help.messagebox("找到"&count&"个地址")

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


内存扩展找整型 - FindIntEx

函数简介:

搜索指定的整数.

函数原型:

string FindIntEx(int hwnd,string addr_range,int int_value_min,int int_value_max,int type,int step,int multi_thread,int mode)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr_range 字符串: 指定搜索的地址集合，字符串类型，这个地方可以是上次FindXXX的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)

如果要进行地址范围搜索，那么这个值为的形如如下(类似于CE的新搜索)

"00400000-7FFFFFFF" "80000000-BFFFFFFF" "00000000-FFFFFFFF" 等.

int_value_min 整型数: 搜索的整数数值最小值

int_value_max 整型数: 搜索的整数数值最大值

最终搜索的数值大与等于int_value_min,并且小于等于int_value_max

type 整型数: 搜索的整数类型,取值如下

0 : 32位

1 : 16 位

2 : 8位

step 整型数: 搜索步长.

multi_thread整型数:表示是否开启多线程查找. 0不开启，1开启.
开启多线程查找速度较快，但会耗费较多CPU资源. 不开启速度较慢，但节省CPU.

mode 整型数: 1 表示开启快速扫描(略过只读内存) 0表示所有内存类型全部扫描.

返回值:

字符串:
返回搜索到的地址集合，地址格式如下:

"addr1|addr2|addr3…|addrn"

比如"400050|423435|453430"

示例:

// 全局搜索
result = ts.FindIntEx(hwnd,"00000000-FFFFFFFF",1,10,4,1)
if(result=="")
help.messagebox("没有找到")
endif
str
count
str.split(result,"|",str)
arraysp.size(str,count)
help.messagebox("找到"&count&"个地址")

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


内存扩展找字符串 - FindStringEx

函数简介:

搜索指定的字符串.

函数原型:

string FindStringEx(int hwnd,string addr_range,string string_value,int type,int step,int multi_thread,int mode)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr_range 字符串: 指定搜索的地址集合，字符串类型，这个地方可以是上次FindXXX的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)

如果要进行地址范围搜索，那么这个值为的形如如下(类似于CE的新搜索)

"00400000-7FFFFFFF" "80000000-BFFFFFFF" "00000000-FFFFFFFF" 等.

string_value 字符串: 搜索的字符串

type 整型数: 搜索的字符串类型,取值如下

0 : Ascii字符串

1 : Unicode字符串

step 整型数: 搜索步长.

multi_thread整型数:表示是否开启多线程查找. 0不开启，1开启.
开启多线程查找速度较快，但会耗费较多CPU资源. 不开启速度较慢，但节省CPU.

mode 整型数: 1 表示开启快速扫描(略过只读内存) 0表示所有内存类型全部扫描.

返回值:

字符串:
返回搜索到的地址集合，地址格式如下:

"addr1|addr2|addr3…|addrn"

比如"400050|423435|453430"

示例:

// 全局搜索
result = ts.FindStringEx(hwnd,"00000000-FFFFFFFF","哈哈哈哈",0,2,1,1)
if(result=="")
help.messagebox("没有找到")
endif
str
count
str.split(result,"|",str)
arraysp.size(str,count)
help.messagebox("找到"&count&"个地址")

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


内存扩展找二进制数据 - FindDataEx

函数简介:

搜索指定的二进制数据.

函数原型:

string FindDataEx(int hwnd,string addr_range,string data,int step,int multi_thread,int mode)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr_range 字符串: 指定搜索的地址集合，字符串类型，这个地方可以是上次FindXXX的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)

如果要进行地址范围搜索，那么这个值为的形如如下(类似于CE的新搜索)

"00400000-7FFFFFFF" "80000000-BFFFFFFF" "00000000-FFFFFFFF" 等.

data 字符串: 要搜索的二进制数据 以字符串的形式描述 比如"00 01 23 45 67 86 ab ce f1"等
这里也可以支持模糊查找,用??来代替单个字节. 比如"00 01 ?? ?? 67 86 ?? ce f1"等.

step 整型数: 搜索步长.

multi_thread整型数:表示是否开启多线程查找. 0不开启，1开启.
开启多线程查找速度较快，但会耗费较多CPU资源. 不开启速度较慢，但节省CPU.

mode 整型数: 1 表示开启快速扫描(略过只读内存) 0表示所有内存类型全部扫描.

返回值:

字符串:
返回搜索到的地址集合，地址格式如下:

"addr1|addr2|addr3…|addrn"

比如"400050|423435|453430"

示例:

// 全局搜索
result = ts.FindDataEx(hwnd,"00000000-FFFFFFFF","00 01 23 45 67
86 ab ce f1",4,1,0)
if(result=="")
help.messagebox("没有找到")
endif
str
count
str.split(result,"|",str)
arraysp.size(str,count)
help.messagebox("找到"&count&"个地址")

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


内存扩展找单精度小数 - FindFloatEx

函数简介:

搜索指定的单精度浮点数.

函数原型:

string FindFloatEx(int hwnd,string addr_range,double float_value_min,double float_value_max,int step,int multi_thread,int mode)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr_range 字符串: 指定搜索的地址集合，字符串类型，这个地方可以是上次FindXXX的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)

如果要进行地址范围搜索，那么这个值为的形如如下(类似于CE的新搜索)

"00400000-7FFFFFFF" "80000000-BFFFFFFF" "00000000-FFFFFFFF" 等.

float_value_min 单精度浮点数: 搜索的单精度数值最小值

float_value_max 单精度浮点数: 搜索的单精度数值最大值

最终搜索的数值大与等于float_value_min,并且小于等于float_value_max

step 整型数: 搜索步长.

multi_thread整型数:表示是否开启多线程查找. 0不开启，1开启.
开启多线程查找速度较快，但会耗费较多CPU资源. 不开启速度较慢，但节省CPU.

mode 整型数: 1 表示开启快速扫描(略过只读内存) 0表示所有内存类型全部扫描.

返回值:

字符串:
返回搜索到的地址集合，地址格式如下:

"addr1|addr2|addr3…|addrn"

比如"400050|423435|453430"

示例:

// 全局搜索
result = ts.FindFloatEx(hwnd,"00000000-FFFFFFFF",0.5,1.0,4,1)
if(result=="")
help.messagebox("没有找到")
endif
str
count
str.split(result,"|",str)
arraysp.size(str,count)
help.messagebox("找到"&count&"个地址")

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


内存扩展找双精度小数 - FindDoubleEx

函数简介:

搜索指定的双精度浮点数.

函数原型:

string FindDoubleEx(int hwnd,string addr_range,double double_value_min,double double_value_max,int step,int multi_thread,int mode)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr_range 字符串: 指定搜索的地址集合，字符串类型，这个地方可以是上次FindXXX的返回地址集合,可以进行二次搜索.(类似CE的再次扫描)

如果要进行地址范围搜索，那么这个值为的形如如下(类似于CE的新搜索)

"00400000-7FFFFFFF" "80000000-BFFFFFFF" "00000000-FFFFFFFF" 等.

double_value_min 双精度浮点数: 搜索的双精度数值最小值

double_value_max 双精度浮点数: 搜索的双精度数值最大值

最终搜索的数值大与等于double_value_min,并且小于等于double_value_max

step 整型数: 搜索步长.

multi_thread整型数:表示是否开启多线程查找. 0不开启，1开启.
开启多线程查找速度较快，但会耗费较多CPU资源. 不开启速度较慢，但节省CPU.

mode 整型数: 1 表示开启快速扫描(略过只读内存) 0表示所有内存类型全部扫描.

返回值:

字符串:
返回搜索到的地址集合，地址格式如下:

"addr1|addr2|addr3…|addrn"

比如"400050|423435|453430"

示例:

// 全局搜索
result = ts.FindDoubleEx(hwnd,"00000000-FFFFFFFF",0.5,1.0,8,1)
if(result=="")
help.messagebox("没有找到")
endif
str
count
str.split(result,"|",str)
arraysp.size(str,count)
help.messagebox("找到"&count&"个地址")

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


内存写整型数 - WriteInt

函数简介:

对指定地址写入整数数值，类型可以是8位，16位 或者 32位

函数原型:

int WriteInt(int hwnd,string addr,int type,int v)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr 字符串: 用字符串来描述地址，类似于CE的地址描述，数值必须是16进制,里面可以用[ ] + -这些符号来描述一个地址。+表示地址加，-表示地址减
模块名必须用<>符号来圈起来

例如:

1. "4DA678" 最简单的方式，用绝对数值来表示地址

2. "<GAME.exe>+DA678" 相对简单的方式，只是这里用模块名来决定模块基址，后面的是偏移

3. "[4DA678]+3A" 用绝对数值加偏移，相当于一级指针

4. "[<GAME.exe>+DA678]+3A" 用模块定基址的方式，也是一级指针

5. "[[[<GAME.exe>+DA678]+3A]+5B]+8" 这个是一个三级指针

总之熟悉CE的人 应该对这个地址描述都很熟悉,我就不多举例了

type 整型数: 整数类型,取值如下

0 : 32位

1 : 16 位

2 : 8位

v 整型数: 整型数值

返回值:

整型数:
0 : 失败

1 : 成功

示例:

ret = ts.WriteInt(hwnd,"4DA678",0,100)

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾


内存写字符串 - WriteString

函数简介:

对指定地址写入字符串，可以是Ascii字符串或者是Unicode字符串

函数原型:

int WriteString(int hwnd,string addr,int type,string v)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr 字符串: 用字符串来描述地址，类似于CE的地址描述，数值必须是16进制,里面可以用[ ] + -这些符号来描述一个地址。+表示地址加，-表示地址减
模块名必须用<>符号来圈起来

例如:

1. "4DA678" 最简单的方式，用绝对数值来表示地址

2. "<GAME.exe>+DA678" 相对简单的方式，只是这里用模块名来决定模块基址，后面的是偏移

3. "[4DA678]+3A" 用绝对数值加偏移，相当于一级指针

4. "[<GAME.exe>+DA678]+ 3A" 用模块定基址的方式，也是一级指针

5. "[[[<GAME.exe>+DA678]+3A]+5B]+8" 这个是一个三级指针

总之熟悉CE的人 应该对这个地址描述都很熟悉,我就不多举例了

type 整型数: 字符串类型,取值如下

0 : Ascii字符串

1 : Unicode字符串

v 字符串: 字符串

返回值:

整型数:
0: 失败

1: 成功

示例:

ret = ts.WriteString(hwnd,"4DA678",0,"我是来测试的")

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾


内存写二进制数据 - WriteData

函数简介:

对指定地址写入二进制数据

函数原型:

int WriteData(int hwnd,string addr,string data)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr 字符串: 用字符串来描述地址，类似于CE的地址描述，数值必须是16进制,里面可以用[ ] + -这些符号来描述一个地址。+表示地址加，-表示地址减
模块名必须用<>符号来圈起来

例如:

1. "4DA678" 最简单的方式，用绝对数值来表示地址

2. "<GAME.exe>+DA678" 相对简单的方式，只是这里用模块名来决定模块基址，后面的是偏移

3. "[4DA678]+3A" 用绝对数值加偏移，相当于一级指针

4. "[<GAME.exe>+DA678]+3A" 用模块定基址的方式，也是一级指针

5. "[[[<GAME.exe>+DA678]+3A]+5B]+8" 这个是一个三级指针

总之熟悉CE的人 应该对这个地址描述都很熟悉,我就不多举例了

data 字符串: 二进制数据，以字符串形式描述，比如"12 34 56 78 90 ab cd"

返回值:

整型数:
0 : 失败

1 : 成功

示例:

ret = ts.WriteData(hwnd,"4DA678","12 34 56 78 90 ab cd")

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾


内存写单精度小数 - WriteFloat

函数简介:

对指定地址写入单精度浮点数

函数原型:

int WriteFloat(int hwnd,string addr,double v)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr 字符串: 用字符串来描述地址，类似于CE的地址描述，数值必须是16进制,里面可以用[ ] + -这些符号来描述一个地址。+表示地址加，-表示地址减
模块名必须用<>符号来圈起来

例如:

1. "4DA678" 最简单的方式，用绝对数值来表示地址

2. "<GAME.exe>+DA678" 相对简单的方式，只是这里用模块名来决定模块基址，后面的是偏移

3. "[4DA678]+3A" 用绝对数值加偏移，相当于一级指针

4. "[<GAME.exe>+DA678]+3A" 用模块定基址的方式，也是一级指针

5. "[[[<GAME.exe>+DA678]+3A]+5B]+8" 这个是一个三级指针

总之熟悉CE的人 应该对这个地址描述都很熟悉,我就不多举例了

v 单精度浮点数: 单精度浮点数

返回值:

整型数:
0 : 失败

1 : 成功

示例:

ret = ts.WriteFloat(hwnd,"4DA678",2.34)

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾


内存写双精度小数 - WriteDouble

函数简介:

对指定地址写入双精度浮点数

函数原型:

int WriteDouble(int hwnd,string addr,double v)

参数定义:

hwnd 整型数: 指定搜索的窗口句.

addr 字符串: 用字符串来描述地址，类似于CE的地址描述，数值必须是16进制,里面可以用[ ] + -这些符号来描述一个地址。+表示地址加，-表示地址减
模块名必须用<>符号来圈起来

例如:

1. "4DA678" 最简单的方式，用绝对数值来表示地址

2. "<GAME.exe>+DA678" 相对简单的方式，只是这里用模块名来决定模块基址，后面的是偏移

3. "[4DA678]+3A" 用绝对数值加偏移，相当于一级指针

4. "[<GAME.exe>+DA678]+3A" 用模块定基址的方式，也是一级指针

5. "[[[<GAME.exe>+DA678]+3A]+5B]+8" 这个是一个三级指针

总之熟悉CE的人 应该对这个地址描述都很熟悉,我就不多举例了

v 双精度浮点数: 双精度浮点数

返回值:

整型数:
0 : 失败

1 : 成功

示例:

ret = ts.WriteDouble(hwnd,"4DA678",2.34)

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾


内存读整型 - ReadInt

函数简介:

读取指定地址的整数数值，类型可以是8位，16位 或者 32位

函数原型:

int ReadInt(int hwnd,string addr,int type)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr 字符串: 用字符串来描述地址，类似于CE的地址描述，数值必须是16进制,里面可以用[ ] + -这些符号来描述一个地址。+表示地址加，-表示地址减
模块名必须用<>符号来圈起来

例如:

1. "4DA678" 最简单的方式，用绝对数值来表示地址

2. "<GAME.exe>+DA678" 相对简单的方式，只是这里用模块名来决定模块基址，后面的是偏移

3. "[4DA678]+3A" 用绝对数值加偏移，相当于一级指针

4. "[<GAME.exe>+DA678]+3A" 用模块定基址的方式，也是一级指针

5. "[[[<GAME.exe>+DA678]+3A]+5B]+8" 这个是一个三级指针

总之熟悉CE的人 应该对这个地址描述都很熟悉,我就不多举例了

type 整型数: 整数类型,取值如下

0 : 32位

1 : 16 位

2 : 8位

返回值:

整型数:
读取到的数值,注意这里无法判断读取是否成功

示例:

value = ts.ReadInt(hwnd,"4DA678",0)
help.messagebox(value)

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。

对于如何读取长整数类型(64位的整数),方法有2个
1. 用两次ReadInt读取高低各32位 然后组合成64位整数. 比如
high = ts.ReadInt(int hwnd,"10101010",0)
low = ts.ReadInt(int hwnd,"10101014",0)
function hexstr(inter)//将不足8位长度的十六进制补0
temp=str.format("%x",inter)
len=str.strleng(temp)
if(len<8)
for(i=0;i<8-len;i++)
temp="0"&temp
endfor
endif
return temp
endfunction
number = type.cdouble(hexstr(high)&hexstr(low))
2. 用一次ReadData来读取8个字节,然后组合成64位整数. 比如
v = ts.ReadData(int hwnd,"10101010",8)
// 取出每个字节运算 移位 组合成64位整数. 具体大家可以自己实践.


内存读字符串 - ReadString

函数简介:

读取指定地址的字符串，可以是GBK字符串或者是Unicode字符串.(必须事先知道内存区的字符串编码方式)

函数原型:

string ReadString(int hwnd,string addr,int type,int len)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr 字符串: 用字符串来描述地址，类似于CE的地址描述，数值必须是16进制,里面可以用[ ] + -这些符号来描述一个地址。+表示地址加，-表示地址减
模块名必须用<>符号来圈起来

例如:

1. "4DA678" 最简单的方式，用绝对数值来表示地址

2. "<GAME.exe>+DA678" 相对简单的方式，只是这里用模块名来决定模块基址，后面的是偏移

3. "[4DA678]+3A" 用绝对数值加偏移，相当于一级指针

4. "[<GAME.exe>+DA678]+3A" 用模块定基址的方式，也是一级指针

5. "[[[<GAME.exe>+DA678]+3A]+5B]+8" 这个是一个三级指针

总之熟悉CE的人 应该对这个地址描述都很熟悉,我就不多举例了

type 整型数: 字符串类型,取值如下

0 : GBK字符串

1 : Unicode字符串

len 整型数: 需要读取的字节数目.

返回值:

字符串:
读取到的字符串,注意这里无法判断读取是否成功

示例:

value = ts.ReadString(hwnd,"4DA678",0,10)
help.messagebox(value)

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


内存读单精度小数 - ReadFloat

函数简介:

读取指定地址的单精度浮点数

函数原型:

float ReadFloat(int hwnd,string addr)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr 字符串: 用字符串来描述地址，类似于CE的地址描述，数值必须是16进制,里面可以用[ ] + -这些符号来描述一个地址。+表示地址加，-表示地址减
模块名必须用<>符号来圈起来

例如:

1. "4DA678" 最简单的方式，用绝对数值来表示地址

2. "<GAME.exe>+DA678" 相对简单的方式，只是这里用模块名来决定模块基址，后面的是偏移

3. "[4DA678]+3A" 用绝对数值加偏移，相当于一级指针

4. "[<GAME.exe>+DA678]+3A" 用模块定基址的方式，也是一级指针

5. "[[[<GAME.exe>+DA678]+3A]+5B]+8" 这个是一个三级指针

总之熟悉CE的人 应该对这个地址描述都很熟悉,我就不多举例了

返回值:

单精度浮点数:
读取到的数值,注意这里无法判断读取是否成功

示例:

value = ts.ReadFloat(hwnd,"4DA678")
help.messagebox(value)

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


内存读二进制数据 - ReadData

函数简介:

读取指定地址的二进制数据

函数原型:

string ReadData(int hwnd,string addr,int len)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr 字符串: 用字符串来描述地址，类似于CE的地址描述，数值必须是16进制,里面可以用[ ] + -这些符号来描述一个地址。+表示地址加，-表示地址减
模块名必须用<>符号来圈起来

例如:

1. "4DA678" 最简单的方式，用绝对数值来表示地址

2. "<GAME.exe>+DA678" 相对简单的方式，只是这里用模块名来决定模块基址，后面的是偏移

3. "[4DA678]+3A" 用绝对数值加偏移，相当于一级指针

4. "[<GAME.exe>+DA678]+3A" 用模块定基址的方式，也是一级指针

5. "[[[<GAME.exe>+DA678]+3A]+5B]+8" 这个是一个三级指针

总之熟悉CE的人 应该对这个地址描述都很熟悉,我就不多举例了

len 整型数: 二进制数据的长度

返回值:

字符串:
读取到的数值,以16进制表示的字符串 每个字节以空格相隔 比如"12 34 56 78 ab cd ef"

示例:

value = ts.ReadData(hwnd,"4DA678",10)
help.messagebox(value)

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。
如果要读取的数据长度过长，比如几十K的数据，由于COM组件的限制，可能无法返回如此长的字符串. 解决办法是分批读取.


内存读双精度小数 - ReadDouble

函数简介:

读取指定地址的双精度浮点数

函数原型:

double ReadDouble(int hwnd,string addr)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

addr 字符串: 用字符串来描述地址，类似于CE的地址描述，数值必须是16进制,里面可以用[ ] + -这些符号来描述一个地址。+表示地址加，-表示地址减
模块名必须用<>符号来圈起来

例如:

1. "4DA678" 最简单的方式，用绝对数值来表示地址

2. "<GAME.exe>+DA678" 相对简单的方式，只是这里用模块名来决定模块基址，后面的是偏移

3. "[4DA678]+3A" 用绝对数值加偏移，相当于一级指针

4. "[<GAME.exe>+DA678]+3A" 用模块定基址的方式，也是一级指针

5. "[[[<GAME.exe>+DA678]+3A]+5B]+8" 这个是一个三级指针

总之熟悉CE的人 应该对这个地址描述都很熟悉,我就不多举例了

返回值:

双精度浮点数:
读取到的数值,注意这里无法判断读取是否成功

示例:

value = ts.ReadDouble(hwnd,"4DA678")
help.messagebox(value)

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


字符转二进制 - StringToData

函数简介:

把字符串转换成二进制形式.

函数原型:

string StringToData(string value,int type)

参数定义:

value字符串: 需要转化的字符串
type 整型数: 取值如下:
0: 返回Ascii表达的字符串
1: 返回Unicode表达的字符串

返回值:

字符串:
字符串形式表达的二进制数据. 可以用于WriteData FindData FindDataEx等接口.

示例:

string_data = ts.StringToData("12345678",1)
ret = ts.FindData(int hwnd,"00000000-7fffffff",string_data)


整型转二进制数据

函数简介:

把整数转换成二进制形式.

函数原型:

string IntToData(int value,int type)

参数定义:

value 整型数: 需要转化的整型数
type 整型数: 取值如下:
0: 4字节整型数 (一般都选这个)
1: 2字节整型数
2: 1字节整型数

返回值:

字符串:
字符串形式表达的二进制数据. 可以用于WriteData FindData FindDataEx等接口.

示例:

int_data = ts.IntToData(&H12345678,0)
ret = ts.FindData(hwnd,"00000000-7fffffff",int_data)


单精度小数转二进制数据 - FloatToData

函数简介:

把单精度浮点数转换成二进制形式.

函数原型:

string FloatToData(double value)

参数定义:

value 单精度浮点数: 需要转化的单精度浮点数

返回值:

字符串:
字符串形式表达的二进制数据. 可以用于WriteData FindData FindDataEx等接口.

示例:

float_data = ts.FloatToData(1.24)
ret = ts.FindData(hwnd,"00000000-7fffffff",float_data)


双精度浮点小数转二进制数据 - DoubleToData

函数简介:

把双精度浮点数转换成二进制形式.

函数原型:

string DoubleToData(double value)

参数定义:

value 双精度浮点数: 需要转化的双精度浮点数

返回值:

字符串:
字符串形式表达的二进制数据. 可以用于WriteData FindData FindDataEx等接口.

示例:

double_data = ts.DoubleToData(1.24)
ret = ts.FindData(hwnd,"00000000-7fffffff",double_data)


申请内存地址 - VirtualAllocEx

函数简介:

在指定的窗口所在进程分配一段内存.

函数原型:

long VirtualAllocEx(hwnd,addr,size,type)

参数定义:

hwnd 整形数: 指定搜索的窗口句柄或者进程ID.

addr 整形数: 预期的分配地址。 如果是0表示自动分配，否则就尝试在此地址上分配内存.

size 整形数: 需要分配的内存大小.

type 整形数: 需要分配的内存类型，取值如下:
0 : 可读可写可执行
1 : 可读可执行，不可写

返回值:

整形数:
分配的内存地址，如果是0表示分配失败.

示例:

addr = ts.VirtualAllocEx(hwnd,0,50,0)
ts.WriteString(hwnd,str.format("%x",addr)),0,"哈哈")
ts.VirtualFreeEx(hwnd,addr)

注:如果正常方式无法分配内存,可以尝试配合TSGuardProtect护盾,突破部分窗口内存保护。
用此函数分配的内存，必须用VirtualFreeEx来释放,以免目标进程内存泄漏.


释放申请的内存地址 - VirtualFreeEx

函数简介:

释放用VirtualAllocEx分配的内存.

函数原型:

long VirtualFreeEx(hwnd,addr)

参数定义:

hwnd 整形数: 指定搜索的窗口句柄或者进程ID.

addr 整形数: VirtualAllocEx返回的地址

返回值:

整形数:
0 : 失败
1 : 成功

示例:

addr = ts.VirtualAllocEx(hwnd,0,50,0)
ts.WriteString(hwnd,str.format("%x",addr)),0,"哈哈")
ts.VirtualFreeEx(hwnd,addr)

注:如果正常方式无法分配内存,可以尝试配合TSGuardProtect护盾,突破部分窗口内存保护。
用此函数分配的内存，必须用VirtualFreeEx来释放,以免目标进程内存泄漏.


终止进程 - TerminateProcess

函数简介:

根据指定的PID，强制结束进程.

函数原型:

int TerminateProcess(int pid)

参数定义:

pid 整型数:进程ID.

返回值:

整型数:
0 : 失败
1 : 成功

示例:

hwnd = ts.GetMousePointWindow()
pid = ts.GetWindowProcessId()
ts.TerminateProcess(pid)

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


读启动命令行 - GetCommandLine

函数简介:

获取指定窗口所在进程的启动命令行

函数原型:

string GetCommandLine(int hwnd)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

返回值:

字符串:
读取到的启动命令行

示例:

command = ts.GetCommandLine(hwnd)
help.messagebox(command)


取模块基址 - GetModuleBaseAddr

函数简介:

根据指定的窗口句柄，来获取对应窗口句柄进程下的指定模块的基址

函数原型:

int GetModuleBaseAddr(int hwnd,string module)

参数定义:

hwnd 整型数: 指定搜索的窗口句柄.

module 字符串: 模块名

返回值:

整型数:
模块的基址

示例:

base_addr = ts.GetModuleBaseAddr(hwnd,"gdi32.dll")
help.messagebox(base_addr)

注:假如无法正常操作的话，那么就是程序窗口有保护,请开启TS之盾 。


无标题文档

函数简介:

释放指定进程的不常用内存.

函数原型:

long FreeProcessMemory(hwnd)

参数定义:

hwnd 整形数: 指定要释放内存的窗口句柄.

返回值:

整形数:

0 : 失败
1 : 成功

示例:

ts.FreeProcessMemory(hwnd)

注: 此函数的原理并不是真正的释放进程内存，而是把进程中不常用的内存交换到虚拟内存中(硬盘里). 这样可以空余出系统ram.此函数会加大系统内存和硬盘之间的数据交换频率，不能频繁调用。 一般用法是程序长时间运行一段时间调用一次.


读机器码 - AsmCode

函数简介:

把汇编缓冲区的指令转换为机器码 并用16进制字符串的形式输出

函数原型:

string AsmCode(int base_addr)

参数定义:

base_addr 整型数: 用AsmAdd添加到缓冲区的第一条指令所在的地址

返回值:

字符串:
机器码，比如 "aa bb cc"这样的形式

示例:

code = ts.AsmCode(#405940)
help.messagebox(code)


机器码转指令 - Assemble

函数简介:

把指定的机器码转换为汇编语言输出

函数原型:

string Assemble(string asm_code,int base_addr,int is_upper)

参数定义:

asm_code 字符串: 机器码，形式如 "aa bb cc"这样的16进制表示的字符串(空格无所谓)

base_addr 整型数: 指令所在的地址

is_upper 整型数: 表示转换的汇编语言是否以大写输出

返回值:

字符串:
MASM汇编语言字符串

示例:

ret = ts.Assemble("81 05 E0 5A 47 00 01 00 00 00",#435fde,0)
help.messagebox(ret)


清理缓冲区 - AsmClear

函数简介:

清除汇编指令缓冲区 用AsmAdd添加到缓冲的指令全部清除

函数原型:

int AsmClear()

参数定义:

返回值:

整型数:
0:失败
1:成功

示例:

ts.AsmClear()


添加指令 - AsmAdd

函数简介:

添加指定的MASM汇编指令

函数原型:

int AsmAdd(string asm_ins)

参数定义:

asm_ins 字符串:MASM汇编指令,大小写均可以 比如 "mov eax,1"

返回值:

整型数:
0:失败
1:成功

示例:

ts.AsmAdd("push 0100")
ts.AsmAdd("push 060304d")
ts.AsmAdd("call 0678fed")


执行指令 - AsmCall

函数简介:

执行用AsmAdd加到缓冲中的指令.

函数原型:

int AsmCall(int hwnd,int mode)

参数定义:

hwnd 整型数: 窗口句柄

mode 整型数: 模式，取值如下

0 : 在本进程中进行执行，这时hwnd无效

1 : 对hwnd指定的进程内执行,注入模式为创建远程线程

返回值:

整型数:
获取执行汇编代码以后的EAX的值.一般是函数的返回值.

示例:

ts.AsmClear()
ts.AsmAdd("mov eax,1")
ts.AsmAdd("push 0123456")
ts.AsmAdd("call 0343434")
ts.AsmCall(hwnd,1)

另要注意的是，AsmAdd里所有的数值都是16进制，并且每个数值必须以0打头，否则解析会出错.

注: 有些时候有保护的时候，此函数执行会失败，请开启TS之盾.


无标题文档

函数简介:

查找指定区域内的图片,位图必须是24位色格式,支持透明色,当图像上下左右4个顶点的颜色一样时,则这个颜色将作为透明色处理.

这个函数可以查找多个图片,只返回第一个找到的X Y坐标.

函数原型:

long FindPic(x1, y1, x2, y2, pic_name, delta_color,sim, dir,intX, intY)

参数定义:

x1 整形数:区域的左上X坐标
y1 整形数:区域的左上Y坐标
x2 整形数:区域的右下X坐标
y2 整形数:区域的右下Y坐标
pic_name 字符串:图片名,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"
delta_color 字符串:颜色色偏 比如"203040" 表示RGB的色偏分别是20 30 40 (这里是16进制表示)
sim 双精度浮点数:相似度,取值范围0.1-1.0
dir 整形数:查找方向 0: 从左到右,从上到下 1: 从左到右,从下到上 2: 从右到左,从上到下 3: 从右到左, 从下到上
intX 变参指针:返回图片左上角的X坐标
intY 变参指针:返回图片左上角的Y坐标

返回值:

整形数:
返回找到的图片的序号,从0开始索引.如果没找到返回-1

示例:

dm_ret = dm.FindPic(0,0,2000,2000,"1.bmp|2.bmp|3.bmp","000000",0.9,0,intX,intY)
If intX >= 0 and intY >= 0 Then
MessageBox "找到"
End If


无标题文档

函数简介:

设置是否把所有内存接口函数中的窗口句柄当作进程ID,以支持直接以进程ID来使用内存接口.

函数原型:

long SetMemoryHwndAsProcessId(en)

参数定义:

en 整形数: 取值如下
0 : 关闭 1 : 开启

返回值:

整形数:
0 : 失败
1 : 成功

示例:

dm.SetMemoryHwndAsProcessId 1

注: 默认是当作窗口句柄.

注意，开启这个功能以后,dx.public.memory就会无效.


机器码 - GetMachineCode

函数简介:

获取本机的机器码. 此机器码用于网站后台. 要求调用进程必须有管理员权限. 否则返回空串.

函数原型:

string GetMachineCode()

参数定义:

返回值:

字符串:
字符串表达的机器机器码

示例:

machine_code = ts.GetMachineCode()

注: 此机器码包含的硬件设备有硬盘,显卡,网卡等. 其它不便透露. 重装系统不会改变此值.

另要注意,插拔任何USB设备,(U盘，U盾,USB移动硬盘,USB键鼠等),以及安装任何网卡驱动程序,(开启或者关闭无线网卡等)都会导致机器码改变.