TC官方合作论坛

 找回密码
 立即注册
查看: 1746|回复: 10
打印 上一主题 下一主题

[已解决] 求解 : 大漠3.1233问题

[复制链接]
跳转到指定楼层
楼主
发表于 2014-5-28 22:38:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我用按键精灵注册大漠3.1233后能用绑定窗口 : “dx2”,“dx”,“dx”,1。
为什么用TC注册后就不能使用,提示码-1;就是要收费才能使用。
1.    RegDll路径 = 辅助.获取资源路径("rc:RegDll.dll")
       DM路径 = 辅助.获取资源路径("rc:dm.dll")
       dllcall(RegDll路径,"int","SetDllPathA","char *",DM路径,"int",0)
       dm = com("dm.dmsoft")

2.     辅助.注册插件(辅助.获取资源路径("rc:dm.dll"), 真)
         dm = com("dm.dmsoft")
这二种方法都试了。。就是不能用模式1,是代码的问题还是。。。。求解啊,,研究几个晚上了。。。。。
回复

使用道具 举报

板凳
发表于 2014-5-28 23:24:11 | 只看该作者
1是收费功能

====================================
函数简介:
绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式,以及模式设定,高级用户可以参考BindWindowEx更加灵活强大.
函数原型:

long BindWindow(hwnd,display,mouse,keypad,mode)

参数定义:

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

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

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

"gdi" : gdi模式,用于窗口采用GDI方式刷新时. 此模式占用CPU较大.

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

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

"dx3" : dx3模式,同dx2模式,但是如果发现有些窗口后台不刷新时,可以考虑用dx3模式,此模式比dx2模式慢许多. 此模式占用CPU较大.
"dx" : dx模式,等同于BindWindowEx中,display设置的"dx.graphic.2d|dx.graphic.3d",具体参考BindWindowEx
注意此模式需要管理员权限

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

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

"windows": Windows模式,采取模拟windows消息方式 同按键自带后台插件.

"windows2": Windows2 模式,采取模拟windows消息方式(锁定鼠标位置) 此模式等同于BindWindowEx中的mouse为以下组合
"dx.mouse.position.lock.api|dx.mouse.position.lock.message|dx.mouse.state.message"
注意此模式需要管理员权限

"windows3": Windows3模式,采取模拟windows消息方式,可以支持有多个子窗口的窗口后台.

"dx": dx模式,采用模拟dx后台鼠标模式,这种方式会锁定鼠标输入.有些窗口在此模式下绑定时,需要先激活窗口再绑定(或者绑定以后激活),否则可能会出现绑定后鼠标无效的情况.此模式等同于BindWindowEx中的mouse为以下组合
"dx.public.active.api|dx.public.active.message|dx.mouse.position.lock.api|dx.mouse.position.lock.message|dx.mouse.state.api|dx.mouse.state.message|dx.mouse.api|dx.mouse.focus.input.api|dx.mouse.focus.input.message|dx.mouse.clip.lock.api|dx.mouse.input.lock.api|dx.mouse.cursor"
注意此模式需要管理员权限

"dx2":dx2模式,这种方式类似于dx模式,但是不会锁定外部鼠标输入.
有些窗口在此模式下绑定时,需要先激活窗口再绑定(或者绑定以后手动激活),否则可能会出现绑定后鼠标无效的情况. 此模式等同于BindWindowEx中的mouse为以下组合
"dx.public.active.api|dx.public.active.message|dx.mouse.position.lock.api|dx.mouse.state.api|dx.mouse.api|dx.mouse.focus.input.api|dx.mouse.focus.input.message|dx.mouse.clip.lock.api|dx.mouse.input.lock.api| dx.mouse.cursor"
注意此模式需要管理员权限

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

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

"windows": Windows模式,采取模拟windows消息方式 同按键的后台插件.

"dx": dx模式,采用模拟dx后台键盘模式。有些窗口在此模式下绑定时,需要先激活窗口再绑定(或者绑定以后激活),否则可能会出现绑定后键盘无效的情况. 此模式等同于BindWindowEx中的keypad为以下组合
"dx.public.active.api|dx.public.active.message|
dx.keypad.state.api|dx.keypad.api|dx.keypad.input.lock.api"
注意此模式需要管理员权限

mode 整形数: 模式。 取值有以下两种
     0 : 推荐模式此模式比较通用,而且后台效果是最好的.
     1 : 和模式0效果一样,如果模式0会失败时,可以尝试此模式. <收费功能,具体详情点击查看>
     2 : 同模式0,此模式为老的模式0,尽量不要用此模式,除非有兼容性问题.
     3 : 同模式1,此模式为老的模式1,尽量不要用此模式,除非有兼容性问题. <收费功能,具体详情点击查看>
     4 : 同模式0,如果模式0有崩溃问题,可以尝试此模式.
     5 : 同模式1, 如果模式0有崩溃问题,可以尝试此模式. <收费功能,具体详情点击查看>
     6 : 同模式0,如果模式0有崩溃问题,可以尝试此模式. <收费功能,具体详情点击查看>
     7 : 同模式1,如果模式1有崩溃问题,可以尝试此模式. <收费功能,具体详情点击查看>
     101 : 超级绑定模式. 可隐藏目标进程中的dm.dll.避免被恶意检测.效果要比dx.public.hide.dll好. 推荐使用. <收费功能,具体详情点击查看>
     103 : 同模式101,如果模式101有崩溃问题,可以尝试此模式. <收费功能,具体详情点击查看>
需要注意的是: 模式1 3 5 7 101 103在大部分窗口下绑定都没问题。但也有少数特殊的窗口,比如有很多子窗口的窗口,对于这种窗口,在绑定时,一定要把
鼠标指向一个可以输入文字的窗口,比如一个文本框,最好能激活这个文本框,这样可以保证绑定的成功.

返回值:
整形数:
0:
失败
1: 成功

如果返回0,可以调用GetLastError来查看具体失败错误码,帮助分析问题.

示例:

// display:
前台 鼠标:前台键盘:前台 模式0
dm_ret = dm.BindWindow(hwnd,"normal","normal","normal",0)

// display: gdi 鼠标:前台 键盘:前台 模式1
dm_ret = dm.BindWindow(hwnd,"gdi","normal","normal",1)

// display: dx 鼠标:前台 键盘:前台 模式0
dm_ret = dm.BindWindow(hwnd,"dx","normal","normal",0)

// display: dx 鼠标:windows后台 键盘:windows后台 模式1
dm_ret = dm.BindWindow(hwnd,"dx","windows","windows",1)

// display: dx 鼠标:dx 后台 键盘: dx后台 模式1
dm_ret = dm.BindWindow(hwnd,"dx","dx","dx",1)

// display: dx 鼠标:windows3后台 键盘:windows后台 模式1
dm_ret = dm.BindWindow(hwnd,"dx","windows3","windows",1)


注意:

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

这个函数的意思是在脚本结束时,会调用这个函数。需要注意的是,目前的按键版本对于这个函数的执行不是线程级别的,也就是说,这个函数只会在主线程执行,子线程绑定的大漠对象,不保证完全释放。
Sub **criptExit()
    dm_ret = dm.UnBindWindow()
End Sub

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

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

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

发现绑定失败的几种可能(一般是需要管理员权限的模式才有可能会失败)
1.     系统登录的帐号必须有Administrators权限
2.     如果是vista和win7系统,启动窗口进程必须用管理员模式启动,脚本也必须用管理员模式启动.
3.     一些防火墙会防止插件注入窗口所在进程,比如360防火墙等,必须把dm.dll设置为信任.
4.     还有一个比较弱智的可能性,那就是插件没有注册到系统中,这时CreateObject压根就是失败的. 检测对象是否创建成功很简单,如下代码

set dm = createobject("dm.dmsoft")
ver = dm.Ver()
If len(ver) = 0 Then
    MessageBox "创建对象失败,检查系统是否禁用了vbs脚本权限"
    EndScript
End If
5.     在沙盘中开的窗口进程,绑定一些需要管理员权限的模式,会失败。
解决方法是要配置沙盘参数,具体如何配置参考沙盘绑定方法.

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

回复 支持 反对

使用道具 举报

沙发
发表于 2014-5-28 22:52:02 | 只看该作者
收费你就注册收费的啊。
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2014-5-29 01:07:10 | 只看该作者
itcfan 发表于 2014-5-28 23:24
1是收费功能

====================================

同个游戏窗口,用按键精灵能绑定的,用TC就提示错误码 -1
回复 支持 反对

使用道具 举报

5#
发表于 2014-5-29 08:22:03 | 只看该作者
收费你就注册收费的啊。
回复 支持 反对

使用道具 举报

6#
发表于 2014-5-29 08:22:20 | 只看该作者
那你就用按键去呗
回复 支持 反对

使用道具 举报

7#
发表于 2014-5-29 10:14:33 | 只看该作者
按键在调试的时候可以用收费功能,TC就不得了。
回复 支持 反对

使用道具 举报

8#
发表于 2014-5-29 11:28:49 | 只看该作者
gastronomy 发表于 2014-5-29 01:07
同个游戏窗口,用按键精灵能绑定的,用TC就提示错误码 -1

你确定按键精灵能绑定并能使用?
回复 支持 反对

使用道具 举报

9#
发表于 2014-5-29 11:45:42 | 只看该作者
大漠说明了,那是收费功能。
回复 支持 反对

使用道具 举报

10#
发表于 2014-5-29 15:12:26 | 只看该作者
收费功能
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-27 00:03 , Processed in 0.170288 second(s), 23 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表