Я использую AHK 1.1, чтобы установить capslock как горячую клавишу для переключения полноэкранного режима ArtRage (режим рабочей среды), я делаю это, потому что ArtRage не позволяет мне устанавливать CapsLock как горячую клавишу, но я довольно привык использовать это ключ, чтобы сделать это во многих программах, поэтому я подумал, что AHK может помочь мне.
Я попробовал это, и это сработало:
; AR4 Toggle Workbench Mode
If WinActive("ahk_class ArtRage 3")
Capslock::
Sleep 20
Send {SC037 Down} ; NumpadMult
Sleep 10
Send {SC037 Up} ; NumpadMult
Sleep 90
WinActivate, ahk_class ArtRage 3
return
#If
Таким образом, скрипт работает нормально, но затем окно ArtRage как-то теряет фокус, я имею в виду, что окно ArtRage все еще отображается, но я заметил, что оно теряет фокус, потому что если я хочу запустить другую горячую клавишу AHK (которая запускает только #If WinActive("ahk_class ArtRage 3")
) сразу же после выполнения вышеописанного сценария, он не обнаружит окно ArtRage как открытое, поэтому оно не запустится, если я не нажму вручную на окно ArtRage.
Я попытался сфокусироваться снова после того, как Capslock
(режим переключения рабочих мест ) завершен, но WinActivate, ahk_class ArtRage 3
не перефокусируется на окне ArtRage, разве нет другого способа перефокусироваться на окне в AHK?
EDITED >>> как я могу поместить IfWinExist("ahk_class ArtRage 3")
в конце части действий? Потому что я не могу просто запустить его поверх моего скрипта AHK, потому что он всегда будет фокусироваться на ArtRage, даже если я работаю в других приложениях, верно? Я пробовал это, но это не в правильном синтаксисе, не могли бы вы опубликовать пример??
#If WinActive("ahk_class ArtRage 3")
Capslock::
Send {SC037 Down} ; NumpadMult
Sleep 30
Send {SC037 Up} ; NumpadMult
Sleep 30
IfWinExist("ahk_class ArtRage 3")
WinActivate, ahk_class ArtRage 3
return
#If