2010-02-03 49 views
1

我想在C#中的獨立線程上運行低級別的keyhook來檢測某些熱鍵。我將如何做到這一點?低級Keyhook

+0

什麼是「鑰匙扣」? – Oded 2010-02-03 12:29:32

+1

在這裏關於這個話題有很多問題和答案。一個非常完整的例子:http://stackoverflow.com/questions/1639331/using-global-keyboard-hook-whkeyboardll-in-wpf-c建議您搜索「GetAsyncKeyState」以及「全局鉤子」,「鍵盤鉤子,「下級鍵盤掛鉤」等。 – BillW 2010-02-03 12:32:20

回答

3

如果您需要此鍵盤掛鉤僅用於檢測熱鍵,則不應使用掛鉤。 Windows支持使用RegisterHotKey()API函數的熱鍵。查看this thread中的代碼示例,瞭解如何使用它。在頁面的下方有一個C#示例。

1

您可以使用的DirectX。 添加一個引用到Microsoft.DirectX.DirectInput(你你的機器上安裝了DirectX之後Here is the SDK。)

創建設備類的一個實例:

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

現在你可以聽鍵盤。