|
函数简介:
绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式,以及模式设定
函数原型:
int BindWindow(int hwnd,string display,string mouse,string keypad,int mode)
参数定义:
hwnd 整型数: 指定的窗口句柄
display 字符串: 屏幕颜色获取方式 取值有以下几种
"normal" : 正常模式,平常我们用的前台截屏模式
"dx" : dx模式
注意此模式需要管理员权限
此模式支持部分游戏最小化找图,不支持的游戏,如果强行最小化,会出现脚本卡死的情况,窗口显示正常后,脚本即可恢复正常
"gdi" :gdi模式
注意此模式需要把窗口移到屏幕之外,否则会出现刷新不正常
mouse 字符串: 鼠标仿真模式 取值有以下几种
"dx": dx模式,采用模拟dx后台鼠标模式,这种方式会锁定鼠标输入.
"windows": Windows模式,采取模拟windows消息方式
keypad 字符串: 键盘仿真模式 取值有以下几种
"dx": dx模式,采用模拟dx后台键盘模式。
注意此模式需要管理员权限
"windows": Windows模式,采取模拟windows消息方式
mode 整型数: 模式。 取值有以下两种
0 : 推荐模式此模式比较通用,而且后台效果是最好的. (此模式退出前,必须先解绑,否则游戏可能异常)
1 : 和模式0效果一样,如果模式0会失败时,可以尝试此模式.
101 : 超级绑定模式. 可隐藏目标进程中的tsPlug.dll.避免被恶意检测.推荐使用.
注:在某些窗口使用101模式或者1模式 绑定失败时,可尝试在游戏启动前开启保护(tsGuardProtect)。
返回值:
整型数:
0: 失败
1: 成功
示例:
ret=ts.BindWindow(hwnd,"dx","dx","dx",1)
ret=ts.BindWindow(hwnd,"gdi","dx","dx",1)
注意:
绑定之后,所有的坐标都相对于窗口的客户区坐标(不包含窗口边框)
另外,绑定窗口后,必须加以下代码,以保证所有资源正常释放
如果在线程调用此函数,线程关闭会自动释放资源,如果不是在线程调用此函数,程序结束时必须调用以下代码,以释放资源
dm_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. 还有一个比较弱智的可能性,那就是插件没有注册到系统中,这时#import 压根就是失败的. 检测对象是否创建成功很简单,如下代码
if(help.isreg("ts.tssoft"))
help.messagebox("已经注册")
else
help.messagebox("没有注册")
endif
5. 窗口所在进程有保护,这个我也无能为力. |
|