低级Keyhook

低级Keyhook

问题描述:

我想在C#中的独立线程上运行低级别的keyhook来检测某些热键。我将如何做到这一点?低级Keyhook

+0

什么是“钥匙扣”? – Oded 2010-02-03 12:29:32

+1

在这里关于这个话题有很多问题和答案。一个非常完整的例子:http://*.com/questions/1639331/using-global-keyboard-hook-whkeyboardll-in-wpf-c建议您搜索“GetAsyncKeyState”以及“全局钩子”,“键盘钩子,“下级键盘挂钩”等。 – BillW 2010-02-03 12:32:20

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

您可以使用的DirectX。 添加一个引用到Microsoft.DirectX.DirectInput(你你的机器上安装了DirectX之后Here is the SDK。)

创建设备类的一个实例:

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

现在你可以听键盘。