Вы должны использовать команду Hotkey
, чтобы создать горячую клавишу во время выполнения. И чтобы выбрать горячую клавишу в gui, самым простым (но не лучшим) вариантом будет управление горячими клавишами . Это, безусловно, самый простой способ, который также удобен для конечного пользователя, но он не поддерживает ничего, кроме обычных горячих клавиш. Для лучших подходов вам понадобится специальный.
Этот был первым нестандартным, найденным мной с помощью поиска Google. Сам не пользовался, но, может, и неплохо. Очень простой, но мощный пользовательский элемент, который вы также можете использовать, - это просто элемент управления Edit
. Работает очень хорошо, если вы ожидаете, что ваши конечные пользователи будут достаточно умны, чтобы набирать такие вещи, как !F1
, +#k
, d & o
и т. Д.
В любом случае, я продемонстрирую здесь использование встроенного управления горячими клавишами. Прекратите читать сейчас, если хотите разобраться самостоятельно.
Сначала создайте gui и свяжите переменную и g-label с элементом управления горячими клавишами. Хотя я собираюсь использовать функцию вместо метки , мне не нравится писать устаревшие AHK.
Gui, Add, Hotkey, % "x50 y25 w90 h30 vChosenHotkey gHotkeyChanged"
Gui, Show, % "w200 h100"
Return
Тогда g-метка HotkeyChanged
должна быть определен, и я буду использовать функцию вместо метки, как сказано выше.
HotkeyChanged()
{
global ChosenHotkey
Gui, Submit, NoHide
Hotkey, % ChosenHotkey, MyHotkey, On
}
И при использовании функции вам нужно беспокоиться об областях, поэтому указано global ChosenHotkey
. Там я говорю функции, что буду использовать переменную, определенную вне ее области видимости. Если области действия - это то, о чем вы еще не знаете и еще не хотите о них узнавать, вы можете написать устаревший AHK, использовать ярлык и забыть обо всем этом. Чтобы узнать о масштабах программирования в целом, вы, вероятно, сможете найти что-нибудь хорошее в Google. И чтобы узнать о них конкретно в AHK, у меня есть предыдущий ответ о них здесь и здесь соответствующая страница документации.
Затем я получаю команду make the script update связанные с ним переменные с Gui, Submit
, вы, кажется, уже знаете об этом. Затем я перехожу к команде Hotkey
. Первый параметр принимает горячую клавишу, которая хранится в переменной ChosenHotkey
. Второй параметр - это метка / имя функции или объект функции. Я буду использовать имя функции MyHotkey
. И в третьем параметре On
указывается, чтобы включить горячую клавишу и, возможно, заменить любую предыдущую любую предыдущую горячую клавишу, которая была на ее месте.
Затем необходимо определить функцию или метку MyHotkey
:
MyHotkey()
{
MsgBox, % "Hotkey pressed!"
}
И все. Если вы хотите сохранить ранее использованную горячую клавишу, а затем использовать ее снова при перезапуске скрипта, существует множество опций, все из которых в основном сводятся к идее сохранения горячей клавиши в какой-либо файл.
Вот полный сценарий:
Gui, Add, Hotkey, % "x50 y25 w90 h30 vChosenHotkey gHotkeyChanged"
Gui, Show, % "w200 h100"
return
HotkeyChanged()
{
global ChosenHotkey
Gui, Submit, NoHide
Hotkey, % ChosenHotkey, MyHotkey, On
}
MyHotkey()
{
MsgBox, % "Hotkey pressed!"
}
GuiClose()
{
ExitApp
}