Лучший способ заняться глобальной обработкой горячей клавиши в c#? [дубликат]

24
задан Community 23 May 2017 в 12:10
поделиться

3 ответа

http://www.codeproject.com/KB/cs/CSLLKeyboardHook.aspx

, Если Вы не используете .net 3.5.

7
ответ дан arul 28 November 2019 в 23:08
поделиться

Я обработал бы это при помощи P/Invoke, чтобы назвать RegisterHotKey () для каждой горячей клавиши, и затем использовать NativeForm (предполагающий, что Вы используете WinForms) быть уведомленным относительно сообщения WM_HOTKEY. Это должно сохранить большую часть Вашего кода горячей клавиши в одном месте.

5
ответ дан Andy 28 November 2019 в 23:08
поделиться

Самое хорошее решение, которое я нашел, это http://bloggablea.wordpress.com/2007/05/01/global-hotkeys-with-net/

Hotkey hk = new Hotkey();

hk.KeyCode = Keys.1;
hk.Windows = true;
hk.Pressed += delegate { Console.WriteLine("Windows+1 pressed!"); };

hk.Register(myForm); 

Обратите внимание, как вы можете установить разные лямбды на разные горячие клавиши

40
ответ дан 28 November 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: