【问题标题】:Low-level Keyhook低级键钩
【发布时间】:2010-02-03 12:22:07
【问题描述】:

我想在 C# 中的单独线程上运行低级 keyhook 以检测某些热键。我该怎么做?

【问题讨论】:

  • 在 SO 上有很多关于这个主题的问题和答案。一个非常完整的例子:stackoverflow.com/questions/1639331/… 建议你搜索“GetAsyncKeyState”以及“全局挂钩”、“键盘挂钩”、“低级键盘挂钩”等。

标签: c# keyhook


【解决方案1】:

如果您只需要此键盘挂钩来检测热键,则不应使用挂钩。 Windows 通过 RegisterHotKey() API 函数支持热键。在this thread 中查看我的代码示例以了解如何使用它。页面下方有一个 C# 示例。

【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:

      您可以使用 DirectX。 添加对 Microsoft.DirectX.DirectInput 的引用(在您的机器上安装 directX 之后。Here is the SDK。)

      创建设备类的实例:

      keyboard = new Microsoft.DirectX.DirectInput.Device(SystemGuid.Keyboard);
      

      你现在可以听键盘了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多