同じスクリプト内の別のホットキーコマンドによってアクティブ化されるスリープコマンドによって中断されることなく、ループをどのように実行しますか?簡単な回避策は2つのahkファイルを用意することですが、1つのスクリプトに統合したいと思います。
たとえば私のサンプルコード。wavファイルは同じフォルダの場所にあるので私にとってはうまくいきます。それ以外の場合、スクリプトはSoundPlayコマンドを無視します。コードが現在のように、ループは正常に機能しますが、RandomLabelホットキーを実行するたびに無効になります(キーボードのsを押す)が、Sleepコマンドの期限が切れると再び有効になります。
Esc::Reload
+1::Test()
Test()
{
SoundPlay,Activated.wav
Hotkey,~s,RandomLabel,Toggle
loop
{
PixelGetColor,color,707,721,Slow
if(color=0xFFFFFF)
{
SoundPlay,Pong.wav
loop
{
PixelGetColor,color,707,721,Slow
if(color=!0xFFFFFF)
{
SoundPlay,Ping.wav
break
}
}
}
}
}
RandomLabel:
Sleep,2000
SoundBeep,750,300
return
編集:コードの目的は、サウンドファイルを再生する前に、ホットキーでカウントダウンタイマーをアクティブにしながら、中断のないループを実行することです。これはすべて、可能であれば特にautohotkeys1で行われます。