函数简介:

设置前台键鼠的模拟方式.
驱动功能支持的系统版本号为(win7/win8/win8.1/win10(10240)/win10(10586)/win10(14393)/win10(15063)/win10(16299)/win10(17134)/win10(17763)/win10(18362)/win10(18363)/win10(19041)/win10(19042) /win10(19043)/ win10(19045)/win11(22000)/win11(22621)/win11(22631)
不支持所有的预览版本,仅仅支持正式版本.  除了模式3,其他模式同时支持32位系统和64位系统.

 

函数原型:

long SetSimMode(mode)

参数定义:

mode 整形数: 0 正常模式(默认模式)
             1
硬件模拟
             2
硬件模拟2(ps2)(仅仅支持标准的3键鼠标,即左键,右键,中键,带滚轮的鼠标,2键和5键等扩展鼠标不支持)
            
3 硬件模拟3

返回值:

整形数:
0  :
插件没注册
-1 : 32
位系统不支持
-2 :
驱动释放失败.
-3 :
驱动加载失败.可能是权限不够. 参考UAC权限设置. 或者是被安全软件拦截.
    
如果是WIN10 1607之后的系统,出现这个错误,可参考这里
-10:
设置失败
-7 :
系统版本不支持. 可以用winver命令查看系统内部版本号. 驱动只支持正式发布的版本,所有预览版本都不支持.
1  :
成功

示例:

dm.SetSimMode 1

dm_ret = dm.BindWindow(hwnd,"normal","normal","normal",0)
...
dm.UnBindWindow


除了模式0,其他方式需要加载驱动,所以调用进程必须有管理员权限,参考如何关闭UAC.
加载驱动时,必须让安全软件放行. 否则模拟无效.

硬件模拟1,没有对键鼠的接口类型有任何限制(PS/2 USB接口)都可以模拟,甚至不插任何键鼠设备都可以模拟.
硬件模拟2(ps2),模式下的键盘基本是正常的,但鼠标兼容性很差,建议只适用此模式的键盘. 鼠标可以使用别的模式. 键盘和鼠标不要求必须插入真实的ps2设备.
硬件模拟3, 设置以后,必须手动按下需要模拟的键盘和鼠标,否则会卡住.直到按下为止. 此后,再次设置不需要重新按下键盘鼠标,直到系统重启. 这个模拟要求被指定的键盘和鼠标不可以中途插拔,会造成模拟失效.  另外,用模拟3后,最好不要调用MoveTo或者MoveToE接口,改为用MoveR自己实现MoveTo或者MoveToEx,否则可能会造成鼠标移动到屏幕左上角的问题.

此接口仅对本对象生效,实际上所有的接口都仅仅对本对象生效,除了DmGuard是全局的.