1、原因一、游戏窗口句柄没有获取到1.游戏加壳,无法获取窗口句柄。你要绑定的游戏它加了壳,所以无法获取窗口句柄,无法绑定窗口。无法向窗口发送后台命令。(加壳的全称是可执行程序资源压缩,是保护文件的常用手段.它起到了加密隐藏的保护作用。让你无法抓到窗口句柄。)这种情况比较复杂,有很多脱壳的工具,但是并不是你试用了一款脱壳软件它就一定适用于你要绑定的游戏,你可能要尝试很多种。
2、游戏hook了GetParent函数接口hook技术可以将自身的代码“融入”被hook住的程序的进程中,成为目标进程的一个部分。通过hook“接触”到需要修改的api函数入口点,改变它的地址指向新的自定义的函数。GetParent函数是用于获得一个指定子窗口的父窗口句柄,如果游戏对它进行了hook,我们就无法获取想要获取的游戏窗口句柄。
3、电脑上运行了其他的挂机软件电脑上运行了其他的挂机软件,导致了要操作的游戏窗口受到了干扰冲突。关掉其他的挂机软件,重启游戏再绑定。导致了要操作的游戏窗口受到了干扰冲突。关掉其他的挂机软件,重启游戏再绑定。
4、原因二、游戏采用的绘图方式差异(图色信息获取与识别方向)目前较为热门的几种绘图分别是:GDI、OpenGL、DirectX。它们的功能就是处理图形图像(我们把范围缩小一点,就拿游戏窗口的图色做例子),GDI是通过操作系统支配最后达成游戏窗口图色的显示,而OpenGL、DirectX它们两个是由显卡操作达成游戏窗口图色显示的。
5、按键精灵无法对基于显卡的OpenGL、DirectX直接操作:我们的按键后台命令是基于操作系统的,所以无法直接对基于显卡的OpenGL、DirectX进行操作。无法对它操作就意味着无法获取图色信息,在使用后台图色命令的时候就会失效。对于同样基于操作系统的GDI则可以进行操作和获取图色信息。
6、大漠插件可以实现对基于显卡的OpenGL、DirectX的图色指令:有些细心的同学可能会问,那为什么大漠就可溅局柑氍以成功绑定及操作由OpenGL、DirectX绘图类型的窗口呢?大漠插件是对这些窗口做了处理的,所以可以截取到由显卡发出的OpenGL、DirectX的图色指令,从而达到后台效果。如果大家再使用按键后台命令时遇到失效的情况,建议大家可以使用大漠或者其他的后台插件。大漠插件下载之后,解压包里有个大漠接口说明2014-9-917:37上传下载附件(1.75KB),这里面详细描述了大漠插件命令的使用方法。这里为大家简要介绍下使用的步骤。
7、>首先,要先释放注册下插件,打开大漠接口说明之后,我们点击蓝色的那行文字。
8、>点击之后会出现,大漠释放到注册的一个流程说明,并有代码案例。注册代码可以直接复制使用,插件释放的位置大家可以按照自己的习惯去设置。
9、>注册之后,使用窗口绑定工具,后台模式绑定下游戏窗口。
10、如果你绑定游戏的时候,尝试了一种后台绑定模式失效了,你可以多尝试几种模式,大漠的后台绑定兼容性还是不错的。>每个命令都有提供清晰的代码示例:
11、原因三、后台键盘鼠标信息无法感应每个游戏客户端,接收消息的模式机制不尽相同。按键精灵后台键鼠命令,按下一个键持续的时间不能捺疮啭普太长。而有些游戏它接收消息的机制模式,接收信息的频率和按键后台键盘命令的频率不一致,按键所发出的后台键盘信息,游戏就无法感应,从而导致后台命令失效的情况。鼠标点击也是一样。这种情况下,我们可以使用其他的后台插件,这些插件对后台键鼠做过优化改善,从而使游戏窗口能够感应到后台键鼠的操作。当然,不一样的插件效果是不一样,可以选择一些名气比较高的插件,例如:大漠、361度插件
12、大漠插件的键鼠命令代码十分简洁。我们绑定后台模式易七淄苷之后,dm.keydown13实现的就是后台键盘按下,如果绑定的前台模式,dm.keydown13就是前韪汶萦燔台效果。大漠键鼠操作代码示例:Callregister()//注册hwnd=Plugin.Window.MousePoint()//获取鼠标指向的窗口句柄dm_ret=dm.BindWindow(hwnd,"dx","windows","windows",1)//后台模式绑定窗口//操作一次按下放开组合键ctrl+Adm.keydown17//按下ctrl键dm.keypress65//按一次A键dm.keyup17//送开ctrl键//鼠标左键单击一次dm.LeftClick//鼠标右键双击dm.LeftDoubleClickSubregister()//大漠释放及注册Setws=createobject("Wscript.Shell")ws.run"regsvr32atl.dll/s"Setws=nothingPutAttachment"G:\test","dm.dll"PutAttachment".\Plugin","RegDll.dll"callPlugin.RegDll.Reg("G:\test\dm.dll")Setdm=createobject("dm.dmsoft")ver=dm.ver()Iflen(ver)=0ThenMessageBox"插件注册失败,检查系统是否禁用了vbs脚本权限"EndScriptEndIfEndSub