【发布时间】:2017-07-25 14:14:35
【问题描述】:
我有一个关于 Windows 的奇怪问题:有什么方法可以全局确定最后一次按下任何键,特别是修饰键(又名alt)而不求助于驱动程序或内核-模式代码?
一些背景:我已经注册了一个全局快捷键(alt+`),并在执行时成功运行代码。目前,我使用一些非常容易出错的启发式方法来确定用户是否在始终按住 alt 键的同时重复按下和释放反引号键,或者用户是否在上次调用热键处理程序后同时按下和释放这两个键.
我希望更准确地确定自上次调用我的处理程序以来是否已释放 alt 键。能够唯一识别最后一次 alt 按键的时间是一个明显的解决方案。另一个是以某种方式连接到每个 alt 按键以记录该信息,我认为这是不可能的。
我愿意接受所有想法和建议!
【问题讨论】:
-
几乎可以肯定,当按下某个键时,Windows 不会在内部保存时间。您可以致电
SetWindowsHookEx(WH_KEYBOARD_LL,)并在内部监控按键和时间 -
低级键盘钩子是全局钩子。它甚至在系统确定输入应该转到哪个窗口之前就挂钩输入事件。
-
@RbMm 如果您发布它,我很乐意接受它作为答案,因为您在 IInspectable 之前提到了这一点。