AutoHotKey - несколько команд не выполняются

284
Chris M

Я использую скрипт AutoHotKey для управления iTunes стандартными клавишами мультимедиа, и он отлично работает, за исключением одного твика, который я пытался добавить к нему. Я хочу, чтобы мультимедийная клавиша «Воспроизведение / Пауза» запустила iTunes, если он еще не открыт, а затем просто начала играть. Я даже добавил задержку, чтобы у нее было время открываться перед командой воспроизведения.
Это код, который я пробовал, но он просто запускает iTunes, и мне нужно нажать клавишу Play / Pause второй раз, чтобы начать играть:

Media_Play_Pause:: IfWinNotExist, ahk_class iTunes { Run %ProgramFiles%\iTunes\iTunes.exe Sleep, 4000 ControlSend, ahk_parent, ; play/pause toggle return }  IfWinExist, ahk_class iTunes { ControlSend, ahk_parent, ; play/pause toggle return } 

РЕДАКТИРОВАТЬ: Рабочий код для JJohnston2 ответ ниже:

Media_Play_Pause:: IfWinNotExist, ahk_class iTunes { Run %ProgramFiles%\iTunes\iTunes.exe WinWaitActive, ahk_class iTunes, ,2 Sleep, 2000 ControlSend, ahk_parent, ; play/pause toggle return }  IfWinExist, ahk_class iTunes { ControlSend, ahk_parent, ; play/pause toggle return } 
0

1 ответ на вопрос

1
JJohnston2

Просто взглянув на код, я не вижу, в какое окно ControlSendдолжен отправляться первый . Назначьте WinTitle, т. Е. ahk_class iTunesДля третьего аргумента.

Это, или вместо оператора сна, попробуйте WinWaitActive(возможно, с последующим гораздо более коротким Sleepоператором, если WinWaitActiveне полностью справиться с задачей).

WinWaitActiveЗаявление предположительно установить последнее найденное окно таким же образом IfWInExistделает во втором блоке кода, который является единственной причиной, я могу думать о том, что это на самом деле работает. ControlSend должен отправлять в последнее найденное окно, так как ни один не указан явно.

ха-ха! кто-то на форуме ahk предложил `WinWait`, и я получил его, вставив` WinWait, ahk_class iTunes, 2` перед оператором `Sleep`. Я полагаю, что добавление этого оператора задает окно для отправки в "ahk_parent"? Chris M 6 лет назад 0

Похожие вопросы