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