Dav*_*ave 1 c++ windows simulation winapi input
有没有办法检测 Windows 上的模拟键盘/鼠标输入。例如,用户在他的键盘上输入一些东西,而不是 sendKeys/PostMessage/屏幕键盘。有没有办法区分这两者?
编辑:也许一个例子会有所帮助。我正在制作游戏并希望区分真实输入与 WinAPI 合成键盘/鼠标消息。
从 Windows 8 开始就有该GetCurrentInputMessageSource功能。您可以使用它,并检查originId枚举中的以下值:
IMO_INJECTED- 输入消息已由SendInput未在其清单文件中设置UIAccess属性的应用程序注入(通过函数)。TRUE
区分“真实”输入和“模拟”输入(假设它是用keybd_event()/mouse_event()或生成的SendInput())的唯一方法是通过SetWindowsHookEx(). 在WH_KEYBOARD_LL与WH_MOUSE_LL挂钩回调提供INJECTED了模拟输入的标志。