Существует ли способ определить Горячую клавишу условно в AutoHotKey? Я хочу сделать различные отображения клавиатуры для различных машин с различными физическими клавиатурами.
Это - то, что я хочу сделать:
RegRead, ComputerName, HKEY_LOCAL_MACHINE, System\CurrentControlSet\Control\ComputerName, ComputerName
If ( ComputerName = BDWELLE-DIM8300 )
{
#Include %A_ScriptDir%\Mappings-BDWELLE-DIM8300.ahk
}
ИЛИ
RegRead, ComputerName, HKEY_LOCAL_MACHINE, System\CurrentControlSet\Control\ComputerName, ComputerName
If ( ComputerName = BDWELLE-DIM8300 )
{
LWin::LAlt
[more hotkey definitions that only apply to this machine]
}
но так как AHK анализирует определения Горячей клавиши и операторы #Include ПРЕЖДЕ, ЧЕМ интерпретировать, Если операторы, определения Горячих клавиш (проложенный ли под землей в #Include или не) не уважают Если условие.
Спасибо за указание на меня к AutoHotKey_L!
У Вас есть определенный пример того, как условно определить горячую клавишу? Синтаксис очень сбивает с толку. Вот то, что я пробую (после того, как установил AutoHotKey_L.exe вместо AutoHotKey.exe):
RegRead, ComputerName, HKEY_LOCAL_MACHINE, System\CurrentControlSet\Control\ComputerName, ComputerName
#If ( ComputerName = BDWELLE-DIM8300 )
LWin::LAlt
но это, кажется, не работает...
Можно хотеть дать Автогорячей клавише L выстрел. Среди прочего это имеет оператор #If, который работает точно так же, как #IfWinActive, но для произвольного кода.
Посмотрите на команду Hotkey - она может создать или изменить HKs динамично где угодно в сценарии.
Lifehacker представил сценарий AHK под названием AutoInclude, которые помогают Вам выбрать который сценарии использовать на различных компьютерах. Это выполняет это путем текстовой конкатенации сценариев в один файл и затем выполнения что один файл.
Отказ от ответственности: Я не использовал его.