2012-07-09 119 views
1

我正在使用it來製作全局鍵盤鉤子。有這樣的線路:如何爲鍵組合創建全局鍵盤鉤子?

gkh.HookedKeys.Add(Keys.A); 
gkh.HookedKeys.Add(Keys.B); 

登記掛鉤熱鍵。如何修改該解決方案以組合鉤子,例如A + B,但不是單個A或B?

+0

不要對熱鍵使用全局鍵盤掛鉤。儘可能使用RegisterHotkey。它平凡支持多鍵組合,但只有除了一個鍵都是修飾鍵(控制,alt,窗口,移位)時,但我沒有看到使用不使用此約定的多鍵快捷鍵的理智應用程序。 – CodesInChaos 2012-07-09 10:04:09

+0

我需要全局鉤子,應用程序應該從盤子 – lenden 2012-07-09 10:04:56

+1

捕獲熱鍵'RegisterHotkey'創建全局熱鍵。所以除非你有非常奇怪的要求,否則它比鍵盤鉤更合適。 – CodesInChaos 2012-07-09 10:05:30

回答

1

全局熱鍵的標準解決方案是RegisterHotkey API。它支持帶有修飾符(Control,Shift,Alt,Windows)的熱鍵,並且不受掛鉤的全局副作用的影響。

+0

HotKeyManager.RegisterHotKey(Keys.A,KeyModifiers.Alt); - 要改變它以使ctrl + alt + a? – lenden 2012-07-09 12:02:05

+2

我認爲你需要'KeyModifiers.Alt | KeyModifiers.Control' – CodesInChaos 2012-07-09 12:48:00