【问题标题】:change a keystroke passing a hook(c/c++)更改通过钩子的击键(c/c++)
【发布时间】:2009-10-27 11:53:33
【问题描述】:

是否可以使用 winapi 键盘挂钩来编辑击键?好吧,不需要键盘挂钩而是类似的东西..

我想做这样的事情:

用户按下键'A'

我的函数将虚拟键码加 1(只是一个示例)

“A”变成“B”

并且“B”被发送到目标应用程序

谢谢!

【问题讨论】:

    标签: c++ winapi hook keystroke


    【解决方案1】:

    首先,您需要一个Keyboardhook。您安装一个过滤器,过滤器函数接收虚拟键代码和键盘钩子时的键盘状态。然后就可以修改虚拟键码了。

    其他链接:

    http://msdn.microsoft.com/en-us/library/ms644990(VS.85).aspx

    http://msdn.microsoft.com/en-us/library/ms644984(VS.85).aspx

    【讨论】:

    • 如果我理解你的正确,我已经尝试过了。您的意思是只是更改keyboardproc中收到的KBDLLHOOKSTRUCT中的虚拟代码吗?
    • 是的,它以这种方式工作得非常好(我曾经做过这样的事情)。请注意,您应该有一个真正充分的理由这样做,因为大多数人会发现它是客观的,即使不是恶意的,至少如果您安装了系统范围的钩子,防病毒软件可能会发出警报,也是(应用程序范围的钩子似乎不会引发警报,至少在这里)。
    【解决方案2】:

    我认为你可以通过应用键盘钩子来吃掉用户输入的击键来做到这一点。 并生成你想要的角色的key_event。

    【讨论】:

      【解决方案3】:

      您不能直接更改 KBDLLHOOKSTRUCT 中的虚拟键值。 相反,在您使用修改后的虚拟键值发送消息后,在钩子函数中返回 1。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-09
        • 2020-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多