1

スクリプトの残りの部分を続行しながら、スクリプト全体でループを再生することは可能ですか? すなわち

Loop
{
Send {Volume_Up 100}
}
SoundBeep, 1000

したがって、上記の例では、ビープ音がバックグラウンドで再生されている間、音量が常に上向きにル​​ープされているという考えになります。動作させることができません。ループ内にSoundBeepを入れてみましたが、ビープ音だけです音量を無限に上げることはありません。これはかなり低レベルの質問であることは知っていますが、理解できません。

4

1 に答える 1

2

あなたの例では、{Volume_Up}100回連続して送信しています。(無限!) ループの後、ビープ音を 1 回鳴らします。毎回音量を上げてビープ音を鳴らすコードは次のとおりです。

Loop 20
{
    Send, {Volume_Up 5}
    SoundBeep, 1000
    Sleep, 500
}

各ループの実行後にスクリプトをしばらくスリープさせることは理にかなっています。そうしないと、意味のある音響効果が得られません。もちろん、ループ実行回数と連続{Volume_Up}キーストローク数を変更できます。

アップデート:

音量を上げながら短い休憩なしで連続してビープ音を鳴らしたい場合: AHK は実際のマルチスレッドをサポートしていないため、これを行う簡単な方法はありません。とにかくそれを達成するための迅速で汚いアプローチを示します。SoundBeepこれは、メイン プロセスの実行を停止しない別の AHK プロセスの起動に基づいています。

構造例:

1 つのディレクトリに、main.ahkbeep.ahkという 2 つのファイルを作成します。

beep.ahkには以下が含まれます。

SoundBeep, %1%, %2%

main.ahkには以下が含まれます。

Run, %A_AhkPath% "%A_ScriptDir%\beep.ahk" 750 1000
Loop 10
{
    Send, {Volume_Up 2}
    Sleep, 100
}

main.ahk を開始すると、最初に beep.ahk が呼び出され、別のプロセスが生成され、頻度と期間 (ここでは7501000 ) の開始パラメーターが渡されます。beep.ahk は、渡されたものに基づいて単純に音を出します (開始パラメータが含まれていること%1%に注意してください)。%2%main.ahk は、ビープ音が終了するのを待たずに、音量キーストロークを同時に送信できます。
複数のプロセスで並列実行を行うべきではないため、これは教育目的でのみ使用する必要があります。実際のプロジェクトでバックグラウンド サウンドを再生したい場合は、独自のサウンド ファイルを用意することがほとんどです。この場合、SoundPlayは非同期でサウンドを再生できます。

于 2013-05-26T16:47:26.900 に答える