Другие способы определить настраиваемую глобальную комбинацию клавиш в Windows для программы на C #?

Первый очевидный способ - создать файл ярлыка (.LNK) в меню «Пуск» (или на рабочем столе) и в диалоговом окне «Свойства», чтобы назначить сочетание клавиш (скажем, Ctrl + Alt < / kbd> + F10).

Однако этот способ, похоже, имеет другие проблемы, например, горячая клавиша не работает, если я нажимаю ее в Firefox в полноэкранном режиме (F11) или при воспроизведении Flash-видео (например, Youtube видео) в полноэкранном режиме.

Есть ли в Windows какие-либо другие встроенные способы определения настраиваемого глобального ярлыка? Может в реестре и тд?

Я бы хотел избежать использования RegisterHotKey, потому что для этого потребуется моя программа на C # (даже простые .NET-программы занимают много памяти), чтобы всегда работать в фоновом режиме в ожидании горячей клавиши (плюс она должна запускаться с Windows и т. Д.)

Или существуют сторонние программы, написанные на машинном коде, которые очень малы и могут быть развернуты вместе с моей программой, чтобы помочь мне выполнить задачу наличия горячей клавиши для моей программы на C #?


person Alex Vang    schedule 12.11.2010    source источник
comment
Я написал приложение winforms на C # в основном исключительно для получения сообщений горячих клавиш. Он предназначен для работы в фоновом режиме. Я только что проверил его текущее использование памяти, и оно составляет 604k. Это много?   -  person Nick Spreitzer    schedule 13.11.2010


Ответы (1)


Вот решение из связанного сообщения Stackoverflow:

Лучший способ справиться с глобальной обработкой горячих клавиш в C #?

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

person Dan Joseph    schedule 12.11.2010
comment
Я использовал этот класс Hotkey. Это очень хорошо написано. Тем не менее, он полагается на функции RegisterHotkey и UnregisterHotkey и требует наличия активного окна для получения сообщений с горячими клавишами. - person Nick Spreitzer; 13.11.2010