2013-05-26 117 views
1

是否可以在整個腳本中循環播放,同時還可以繼續執行腳本的其餘部分。即如何一次運行兩個腳本autohotkey?

Loop 
{ 
Send {Volume_Up 100} 
} 
SoundBeep, 1000 

所以在上面的例子中,想法是該卷正在不斷向上成環,當一個音可在後臺播放,我無法得到它的工作,我已經試過把SoundBeep在循環中,但它只是嗶嗶聲,不會無限發送音量。我知道這是一個相當低級別的問題,但我無法弄清楚。

回答

2

在你的例子中,你連續100次發送{Volume_Up}。在你的(無限!)循環之後,你讓它一次發出嗶嗶聲。下面就來增大音量和蜂鳴每次代碼:

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

這是有道理的,讓腳本休眠每次循環運行一段時間後。否則,將不會有有意義的聲學效果。 當然,您可以修改循環運行的次數以及連續的{Volume_Up}按鍵次數。

更新:

如果你想嘟嘟聲不斷,沒有一個短暫的休息,同時起到提高音量:有沒有簡單的方法來做到這一點,因爲AHK支持沒有真正的多線程。無論如何,我將展示一種快速和骯髒的方法。它基於啓動另一個AHK過程,其中SoundBeep不會停止主流程的執行。

結構示例:

在一個目錄中,我們創建了兩個文件,分別main.ahkbeep.ahk

beep.ahk包含:

SoundBeep, %1%, %2% 

main.ahk contains S:

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

當您啓動main.ahk,它會先調用beep.ahk,產卵另一個進程,並傳遞給它的啓動參數的頻率和持續時間(這裏:和)。 beep.ahk只會根據您傳遞的內容發出聲音(請注意,%1%%2%包含我們的啓動參數)。然後,main.ahk可以同時發送我們的音量按鍵,而無需等待嘟嘟聲完成。
這應該只用於教育目的,因爲並行執行不應該用多個進程來實現。如果你想在真實的項目中播放背景音樂,你很可能會擁有自己的聲音文件;在這種情況下,SoundPlay將能夠異步播放聲音。