AutoHotKey - 여러 명령이 실행되지 않습니다.

AutoHotKey - 여러 명령이 실행되지 않습니다.

저는 표준 미디어 키로 iTunes를 제어하기 위해 AutoHotKey 스크립트를 사용하고 있으며, 추가하려고 시도한 한 가지 조정을 제외하고는 훌륭하게 작동합니다. 아직 열려 있지 않은 경우 미디어 재생/일시 중지 키를 사용하여 iTunes를 실행한 다음 재생을 시작하고 싶습니다. 재생 명령 전에 열릴 시간을 갖도록 지연도 추가했습니다.
이것은 제가 시도한 코드이지만 iTunes가 실행되고 재생을 시작하려면 재생/일시 중지 키를 두 번째로 눌러야 합니다.

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

IfWinExist, ahk_class iTunes
{
ControlSend, ahk_parent, {SPACE}  ; 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, {SPACE}  ; play/pause toggle
return
}

IfWinExist, ahk_class iTunes
{
ControlSend, ahk_parent, {SPACE}  ; play/pause toggle
return
}

답변1

코드만 보면 첫 번째 창을 어떤 창 ControlSend으로 보내야 할지 알 수 없습니다. 즉, ahk_class iTunes세 번째 인수에 대해 WinTitle을 지정합니다 .

또는 수면 명령문 대신 시도해 보십시오 ( 완전히 수행되지 않으면 훨씬 더 짧은 명령문이 WinWaitActive뒤따를 수도 있음 ).SleepWinWaitActive

명령문 WinWaitActive은 아마도 두 번째 코드 블록에서와 동일한 방식으로 마지막으로 발견된 창을 설정할 것입니다 IfWInExist. 이것이 실제로 작동한다고 생각할 수 있는 유일한 이유입니다. 명시적으로 지정된 창은 없으므로 ControlSend는 마지막으로 발견된 창으로 전송해야 합니다.

관련 정보