【发布时间】:2010-02-03 12:22:07
【问题描述】:
我想在 C# 中的单独线程上运行低级 keyhook 以检测某些热键。我该怎么做?
【问题讨论】:
-
在 SO 上有很多关于这个主题的问题和答案。一个非常完整的例子:stackoverflow.com/questions/1639331/… 建议你搜索“GetAsyncKeyState”以及“全局挂钩”、“键盘挂钩”、“低级键盘挂钩”等。
我想在 C# 中的单独线程上运行低级 keyhook 以检测某些热键。我该怎么做?
【问题讨论】:
如果您只需要此键盘挂钩来检测热键,则不应使用挂钩。 Windows 通过 RegisterHotKey() API 函数支持热键。在this thread 中查看我的代码示例以了解如何使用它。页面下方有一个 C# 示例。
【讨论】:
【讨论】:
您可以使用 DirectX。 添加对 Microsoft.DirectX.DirectInput 的引用(在您的机器上安装 directX 之后。Here is the SDK。)
创建设备类的实例:
keyboard = new Microsoft.DirectX.DirectInput.Device(SystemGuid.Keyboard);
你现在可以听键盘了。
【讨论】: