簡體   English   中英

全球低級鍵盤掛鈎組合

[英]Global Low Level Keyboard Hook for Combinations

多虧了教程,我知道如何做“全局低級鍵盤掛鈎”

我還想監視組合鍵或快捷方式,

我的想法是我可以擁有一組標志,這些標志可以代表鍵盤按鍵的上/下狀態。

僅當falg為SET或1時 ,按鍵是向下的;當它為UNSET或0時 ,按鍵是向上的。

我可以將其用於組合鍵\\快捷方式。 當按下一個鍵時,該鈎子會將我帶到執行事件的功能。 我要做的是,檢查是否設置了其他標志。 如果是,那么這意味着同時按下兩個鍵,因此我有自己的組合。

我可以使這個技巧起作用。

我正在尋找的是更好的選擇。 有沒有。

是的,那個更好的選擇是RegisterHotKey函數

全局鈎子是非常繁重的方法,僅應在絕對必要時使用。 在這種情況下,聽起來不僅是不需要全局鈎子,而且實現起來實際上比每次按下所需的鍵序列時自動生成的簡單WM_HOTKEY消息響應都要復雜。

由於使用的是.NET,因此需要P /調用RegisterHotKey函數。
定義看起來像這樣:

[DllImport("user32.dll", SetLastError = true)]
static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);

WM_HOTKEY消息,可以通過重寫表單的WndProc方法 (調用RegisterHotKey函數時指定其句柄的方法)來處理,它對應於以下值:

const int WM_HOTKEY = 0x0312;

其他所需的值在RegisterHotKey函數的鏈接文檔中均已明確提供。 當然,必須閱讀文檔; 否則,您將錯過重要的警告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM