|
|
18 vmware后台键鼠dx.mouse.vmware和dx.keypad.vmware
这2个参数专门用于vmware的后台键鼠. (目前我仅在vmware16.1.0上测试通过,其他版本如果发现不行,可以联系我解决)
使用这2个参数时,有几个必要条件.
a. 要求目标窗口必须是vmware的64位窗口. 类名是MKSEmbedded
b. vmware的首选项->输入->单击鼠标时抓取键盘和鼠标,这个必须打勾. 为游戏优化鼠标必须选自动或者从不,最好选从不,选始终会让鼠标移动变成相对移动,导致无法后台.
c. 绑定前,必须先激活目标窗口,并且目标虚拟机那个子窗口必须获取到输入焦点. 如果在绑定过程中,窗口不处于激活状态,可能会导致后台鼠标失效.(这个时候可以手动点一下目标窗口,或者重新绑定)
d. 如果使用的是vmware workstation,那么在绑定后,千万不能切换tab. 也不能打开别的虚拟机. 否则会让绑定的窗口改变,从而导致后台失效.
e. 要求目标虚拟机,也就是vmware-vmx.exe不能是那种加壳的. 加壳的可能会导致我无法定位到特征,从而导致绑定失败-46.(常见于一些3方修改的定制vmware)
f. 目标虚拟机必须以管理员的方式运行
g. 目标窗口不可以最小化(会导致鼠标移动无效)
使用这2个参数进行多开操作时,必须使用vmplayer来进行多开,上面的d讲了原因,如果使用vmware workstation多开,无法切换tab.
如果是用了定制的vmware,导致-46,那么你得提供原版没修改的vmware-vmx.exe来给我分析. 如果分析后还是无法解决,那就没办法. 得自己找定制vmware的作者.
下面是绑定的例子
hwnd = dm.GetMousePointWindow()
dm.SetWindowState hwnd,12
dm.SetWindowState hwnd,15
delay 1000
dm_ret = dm.BindWindowEx(hwnd,"dx.graphic.3d.10plus","dx.mouse.vmware|dx.mouse.input.lock.api|dx.mouse.position.lock.api","dx.keypad.vmware","dx.public.inject.c|dx.public.graphic.speed",101)
dm.LockInput 1
然后就可以正常进行后台操作了.
如果绑定失败,GetLastError的错误码是-46,那么就是vmware的版本不兼容. 可以联系我来解决.
如果你是用绑定测试工具,如果要实现绑定前激活窗口,可以加dx.public.active.message来实现. 当然这个参数实际是不需要的. 只是为了方便激活而已.
键盘参数里只有dx.keypad.vmware
鼠标参数里不能有dx.mouse.position.lock.message和dx.mouse.state.message这2个参数
由于vmware的后台特殊性,EnableBind,GetCursorShape,GetCursorShapeEx,HackSpeed等接口都无法使用. SendString等接口更是不能使用.
所有的操作只有图色操作和键鼠. 其他操作一律无效. |
评分
-
查看全部评分
|