Мне нужен скрипт ahk, который отправляет 3 разные горячие клавиши (например, нажатие f1, отправка f5 в активное окно определенного приложения (покера)), хотя f1 должна быть f1 для других приложений, работающих параллельно
кто может помочь?
решение1
Если заголовок вашего покерного приложения всегда заканчивается на - NLH
, но вы не хотите соответствовать тем окнам, класс которых PokerStarsTableFrameClass
, используйте следующее:
F1::
WinGetTitle, Title, A
WinGetClass, Class, A
if (RegExMatch(Title, "- NLH$") AND (Class != "PokerStarsTableFrameClass"))
SendPlay {F5}
else
SendPlay {F1}
return
Как это работает
WinGet(Title|Class), (Title|Class), A
считывает заголовок|класс активного (A
) окна и сохраняет его в переменнойTitle|Class
.- NLH$
эторегулярное выражениесоответствие всем строкам, которые заканчиваются на- NLH
. ($
это конец строки)if (RegExMatch(Title, "- NLH$") AND (Class != "PokerStarsTableFrameClass"))
проверяет, соответствует ли регулярное выражениеTitle
,ноотличаетсяClass
от исключения.Если да,
SendPlay {F5}
то отправляет F5в активное окно.В противном случае
SendPlay {F1}
отправляет нормаль F1в активное окно.
решение2
Вам не нужен скрипт AutoHotkey. Вам нужно научиться использовать доступный API (команды), чтобы добиться желаемого. Чтобы отправить ввод непосредственно в окно или его элементы управления, активные или нет, вы можете использоватьУправлениеОтправитькоманда.