首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测模拟键盘/鼠标输入

检测模拟键盘/鼠标输入
EN

Stack Overflow用户
提问于 2010-12-29 19:43:36
回答 3查看 4.6K关注 0票数 1

有没有办法在Windows上检测模拟键盘/鼠标输入?例如,用户在他的键盘上输入一些东西,而不是sendKeys/PostMessage/屏幕上的键盘。有什么方法可以区分这两者吗?

编辑:也许举个例子会有所帮助。我正在制作一个游戏,想要区分真实输入和WinAPI合成键盘/鼠标消息。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-29 20:34:58

我可能错了,但屏幕键盘(和其他模拟用户输入的应用程序)很可能使用SendInput应用编程接口:

SendInput在输入堆栈的最底层运行。它只是进入键盘和鼠标驱动程序用来告诉窗口管理器用户已生成输入的相同输入机制的后门。来源:http://blogs.msdn.com/b/oldnewthing/archive/2010/12/21/10107494.aspx

因此,可能无法判断输入是否来自“真正的”键盘。

票数 2
EN

Stack Overflow用户

发布于 2018-10-23 06:34:05

区分“真实”输入和“模拟”输入(假设它是用keybd_event()/mouse_event()SendInput()生成的)的唯一方法是通过SetWindowsHookEx()使用低级键盘/鼠标挂钩。WH_KEYBOARD_LLWH_MOUSE_LL挂钩回调为模拟输入提供INJECTED标志。

票数 6
EN

Stack Overflow用户

发布于 2018-11-23 04:58:41

从Windows8开始,就有了GetCurrentInputMessageSource函数。您可以使用它,并检查originId枚举的下列值:

IMO_INJECTED -输入消息已由未在其清单文件中将UIAccess属性设置为TRUE的应用程序注入(通过SendInput函数)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4553777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档