【发布时间】:2020-08-31 20:36:45
【问题描述】:
我很想知道是否有办法让SendInput 在低级键盘挂钩中设置LLKHF_INJECTED 标志。我很确定宏应用程序有一些方法可以做到这一点,但我不确定如何。是否有 C++ Windows 替代方案,或者我需要以不同方式配置我的 INPUT?
【问题讨论】:
标签: c++ windows winapi visual-c++
我很想知道是否有办法让SendInput 在低级键盘挂钩中设置LLKHF_INJECTED 标志。我很确定宏应用程序有一些方法可以做到这一点,但我不确定如何。是否有 C++ Windows 替代方案,或者我需要以不同方式配置我的 INPUT?
【问题讨论】:
标签: c++ windows winapi visual-c++
调用SendInput 将设置LLKHF_INJECTED 标志,正如低级键盘挂钩所观察到的那样。你不需要做任何特别的事情。毕竟SendInput的唯一目的就是注入输入。
LowLevelKeyboardProc 文档中明确说明了这一点:
如果输入来自对
keybd_event的调用,则输入被“注入”。
keybd_event是SendInput的前身。
【讨论】:
SendInput调用keybd_event?抱歉,如果原始帖子不清楚,但我想“愚弄”键盘钩子,让其认为此 SendInput 事件是由用户发送的,而不是 SendInput。
keybd_event 还是SendInput,您都无法自定义该行为。这就是系统的工作方式。如果您需要让输入看起来像真正的输入,您将不得不采用更复杂的解决方案,例如编写自己的键盘驱动程序。