Как зарегистрировать собственное сочетание клавиш для приложения Windows
Я хочу создать служебное приложение Windows, которое можно вызывать в любое время из любого другого приложения с помощью сочетания клавиш, например:
• Win+T
• Ctrl+T
• Alt+T
• Ctrl+ Alt+T
• Ctrl+ Shift+T
Какие комбинации клавиш я могу использовать и как настроить их в реестре Windows?
(Если ярлык используется другим приложением, он, конечно, не должен работать.)
Ответов (4)4
Возможность делать это программно, когда запуск вашего приложения вызывает этот Windows API:
RegisterHotKey(IntPtr hwnd, int id, int fsModifiers, int vk);
И чтобы отменить регистрацию, вызовите этот API:
UnregisterHotKey(IntPtr hwnd, int id);
Оба существуют в user32
API
http://www.pinvoke.net/search.aspx?search=RegisterHotKey&namespace=[All]
Если ваше приложение (или его ярлык) доступно на вашем рабочем столе, вы можете щелкнуть правой кнопкой мыши, чтобы открыть контекстное меню, выбрать «Свойства» и ввести там комбинацию клавиш. Просто щелкните текстовое поле «Сочетание клавиш» и нажмите нужное сочетание клавиш.
Я назначил WIN+ Cсвоему калькулятору и WIN+ Vсвоему регулятору громкости.
Если вам нужен более сложный сценарий того, что предлагает ярлык оболочки, вы должны начать с чтения Win32 Hooks and Hooks Overview .
В частности, вам нужно добавить WH_KEYBOARD
ловушку с помощью SetWindowsHookEx
функции. UnhookWindowsHookEx
Когда вы закончите, вам также нужно отцепить крючок .
Есть старая статья от Дино Эспозито о том, как создавать хуки Windows в .NET через какое-то взаимодействие с Win32.