# vmultiInput **Repository Path**: python2020/vmulti-input ## Basic Information - **Project Name**: vmultiInput - **Description**: Virtual Multiple HID Driver (multitouch, mouse, digitizer, keyboard, joystick), 虚拟人机接口驱动, 可以模拟键盘按键,鼠标,游戏操纵杆等设备的输入. 从 https://code.google.com/p/vmulti clone过来,并用Visual Studio 2017 + WDK 10重建工程并编译 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-08-08 - **Last Updated**: 2025-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # vmulti Virtual Multiple HID Driver (multitouch, mouse, digitizer, keyboard, joystick), 虚拟人机接口驱动, 可以模拟键盘按键,鼠标,游戏操纵杆等设备的输入. ### Prerequisites 基于WDF框架, 请根据自己的Visual Studio版本和Windows系统版本从microsoft官网上下载对应的WDK(Windows Driver Kit). 本次上传的是在Visual studio 2017 + WDK 10的工程, 可根据自身开发环境的情况进行重新配置. ### Building 1. 打开vmulticlient.sln后会看到4个project, 分别是vmulti(驱动project), libvmulti(应用层与驱动对接库project), libvmultiTestApp以及kbdHookTestApp(应用层测试project). 2. 编译vmulti驱动, 右键点vmulti属性, (1). "常规"中选择自己的Windows SDK版本,“平台工具集”选择WindowsKernelModeDriver(x.y), x、y视安装的WDK版本而定. (2). "Driver setting"设置: a. "Gneral"中的Target OS Version选择你的运行目标机的系统(比如你想运行在Windows 7上,那就选择Windows 7). "Target Platform"下有几个项, 我只测了Desktop,其他的没试过; b. "Driver Model"中,Type of Driver选择KMDF; c. "Inf2Cat"中,Run Inf2Cat选择“是”; d. "Driver Signing"中,Sign Mode选择 test sign. (没办法, 64位系统都需要数字签名, 这个项目没数字签名,只能在测试模式下使用); e. "Wpp Tracing"中, Run Wpp Tracing选择"否". (3). INF文件工程里已经做好,不需要修订, 如果想修订也可以. (4). 点Visual studio中的“生成”->“配置管理器”,选择编译Debug还是Release, 平台选择x64(只试过x64, x86的没试过,手里没有32位系统). (5). 最后,右键点vmulti->生成. 就可以编译了. 3. 编译libvmulti应用与驱动对接库. 右键点libvmulti属性,“常规”中配置类型选择“静态库(.lib)”, 编译成静态库(想编译成动态库也成), "字符集"选择“使用多字节字符集”, 没用UNICODE试过; 然后配置管理器中选择编译Debug还是Release, 平台选择x64(只试过x64, x86的没试过,手里没有32位系统). 最后编译. 4. 编译测试程序libvmultiTestApp和kbdHookTestApp,这个应该很容易, 自行在配置管理器中选择编译Debug还是Release, 平台选择x64; libvmultiTestApp.exe用来模拟键盘输入, kbdHookTestApp.exe用来抓取键盘输入的内容. 5. 全部编译通过后,编译结果都会输出到output\x64目录下,包括驱动,对接库以及两个测试程序exe. ### Installing 1. 说明:output目录下有devcon.exe、install.bat和uninstall.bat用来安装和卸载驱动的, 不要删除掉. 2. 测试机设置成数字签名测试模式, 方法:以管理员方式打开cmd, 输入bcdedit /set testsigning on, 回车,重启系统. 3. 将编译出来的output目录拷贝到测试机上, 进到output\x64目录下, 右键点install.bat->“以管理员身份运行”安装驱动, 过程中可能会引出一个红色窗口,点“始终安装此驱动程序软件”. 如果运行了360, 可能还会说有木马之类的,直接添加信任就好. 点install.bat前安装前最好打开设备管理器,可以看到安装的设备, cmd窗口最后有Drivers installed successfully.字样 就表示安装成功了. 设备管理器的键盘下多出一个HID Keyboard Device, 人机接口设备下会看到一个vmulti device,鼠标和其他指标设备下也会多出1-2个HID-compliant mouse. ### Uninstalling 1. 右键点Uninstall.bat->“以管理员身份运行”卸载驱动, 恢复到vmulti驱动安装前状态, 连同system32/drivers下的vmulti.sys也一并删除. ### Testing 1. 为了验证模拟键盘输入有效,先双击打开output\x64下的键盘hook测试程序KeyboardGlobalHookTestApp.exe, 然后打开一个cmd窗口,进到output\x64目录下, 输入testvmulti.exe /keyboard 回车, 这个测试程序只模拟了abc_0123456789的键盘输入,等到执行完成后,会在hook测试程序窗口中看到有输出, 但这个输出是vkCode. ### Addtional comments 1 模拟键盘输入时,key code请参考doc\USB HID Usage Tables 1.1.pdf中的page53-59.