2009-02-28 6 views
7

Я хочу создать приложение окна утилиты, которая может быть вызвана в любое время из любого другого приложения с помощью комбинации клавиш, например:Как зарегистрировать пользовательские сочетания клавиш для окна приложения

Win + Т

Ctrl + Т

Alt + T

Ctrl + Alt + T

Ctrl + Сдвиг + T

Какие ключевые комбинации можно использовать и как настроить их в реестре Windows?

(Если ярлык используется в другом приложении, он должен, конечно, не работает.)

+0

Вы просите установить эти ярлыки программно или вручную? – Sung

+0

Что такое STRG? Это то же самое, что и CTRL? –

+1

STRG - это немецкое имя для CTRL :) –

ответ

6

Опция для выполнения этого программно, когда ваш запуск приложения призывающая этой API Windows:

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]

+0

Работы по назначению клавиш быстрого вызова программ – Sung

+0

Это работает только в то время, когда ваша программа работает правильно? –

+0

@ TimLovell-Smith да правильно –

1

Если ваше приложение (или ярлык к нему) доступна на вашем рабочем столе, вы можете щелкнуть правой кнопкой мыши на получить контекстное меню, выбрать «Свойства» и ввести там ярлык. Просто нажмите в текстовом поле «Ярлык клавиши» и нажмите нужную комбинацию клавиш.

Я назначен WIN + C на мой калькулятор, и WIN + V на мой регулятор громкости.

+0

Работает для ручной комбинации клавиш быстрого доступа – Sung

+0

Это смешно. Кажется, это работает только для «родных» приложений. Поскольку каждое приложение, которое я создал в winforms C#, не имеет этого параметра в диалоговом окне свойств, когда вы щелкните правой кнопкой мыши файл на рабочем столе. –

+1

. Интересно [over on SuperUser] (http://superuser.com/q/424782/69392) там есть централизованное хранилище для этих горячих клавиш. Я подозреваю, что это в реестре. Теперь вы, кажется, подразумеваете, что набор ярлыков «на вашем рабочем столе» сканируется для сопоставления горячих клавиш. Любые указатели для более подробной информации? – Lumi

1

Если вам нужен более продвинутый сценарий для предложения ярлыка оболочки, вы должны начать с чтения Win32 Hooks и Hooks Overview.

В частности, вам необходимо добавить крючок WH_KEYBOARD, используя функцию SetWindowsHookEx. Вы также должны отцепить через UnhookWindowsHookEx, когда закончите.

Существует старая статья от Dino Esposito, как сделать Windows Hooks in .NET через какой-то Win32-интерфейс.

+0

Работы по назначению клавиш быстрого набора – Sung

0

Я боюсь, что это не то, что вы можете сделать, просто установив значения в реестре, как это было указано в других ответах, необходимых для вызова некоторых программ Windows API для этого.