【问题标题】:Is there any way to make SendInput set the LLKHF_INJECTED flag?有没有办法让 SendInput 设置 LLKHF_INJECTED 标志?
【发布时间】:2020-08-31 20:36:45
【问题描述】:

我很想知道是否有办法让SendInput 在低级键盘挂钩中设置LLKHF_INJECTED 标志。我很确定宏应用程序有一些方法可以做到这一点,但我不确定如何。是否有 C++ Windows 替代方案,或者我需要以不同方式配置我的 INPUT

【问题讨论】:

    标签: c++ windows winapi visual-c++


    【解决方案1】:

    调用SendInput 将设置LLKHF_INJECTED 标志,正如低级键盘挂钩所观察到的那样。你不需要做任何特别的事情。毕竟SendInput的唯一目的就是注入输入。

    LowLevelKeyboardProc 文档中明确说明了这一点:

    如果输入来自对keybd_event 的调用,则输入被“注入”。

    keybd_eventSendInput的前身。

    【讨论】:

    • 有没有办法更改标志集,或防止 SendInput调用keybd_event?抱歉,如果原始帖子不清楚,但我想“愚弄”键盘钩子,让其认为此 SendInput 事件是由用户发送的,而不是 SendInput
    • @sup 如果输入无法识别为由钩子注入,则无法注入输入。无论您是调用keybd_event 还是SendInput,您都无法自定义该行为。这就是系统的工作方式。如果您需要让输入看起来像真正的输入,您将不得不采用更复杂的解决方案,例如编写自己的键盘驱动程序。
    猜你喜欢
    • 2019-11-07
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多