2

同じスクリプト内の別のホットキーコマンドによってアクティブ化されるスリープコマンドによって中断されることなく、ループをどのように実行しますか?簡単な回避策は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で行われます

4

1 に答える 1

1

試してみてくださいSetTImer

RandomLabel:  
    settimer, LabelSoundBeep, -2000
return  
LabelSoundBeep:
    SoundBeep,750,300  
return
于 2012-11-17T00:22:44.373 に答える