2013-05-26 2 views
1

스크립트 전체에서 루프를 재생하면서 나머지 스크립트를 계속 수행 할 수 있습니까? 경고음이 백그라운드에서 재생되는 동안 즉한 번에 두 개의 스크립트를 실행하는 방법 autohotkey?

Loop 
{ 
Send {Volume_Up 100} 
} 
SoundBeep, 1000 

따라서 위의 예에서 아이디어가 볼륨이 지속적으로 위쪽으로 반복되고 있다는 것, 나는 그것이 동작하지 않습니다, 나는 SoundBeep 퍼팅 시도했다 루프 안에서는 신호음 만 울리고 볼륨을 무한대로 보내지 않습니다. 나는 이것이 꽤 낮은 수준의 질문이라는 것을 알고 있지만, 나는 그것을 이해할 수 없다.

답변

2

예제에서 {Volume_Up}을 100 번 연속 전송합니다. 당신의 (무한 루프!) 루프 후에, 한번 삑 소리를냅니다. 여기 때마다 볼륨을 증가시키고 경고음 코드는 다음과 같습니다

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

그것은 의미가이 스크립트 잠 각 루프 실행 후 약간의 시간을 수 있도록. 그렇지 않으면 의미있는 음향 효과가 없습니다. 물론 루프 실행 횟수와 연속적인 {Volume_Up} 키 스트로크의 수를 수정할 수 있습니다.

업데이트 :이 작업을 수행하는 쉬운 방법은 없습니다, AHK는 실제 멀티 스레딩을 지원하지 않기 때문에 :

볼륨을 증가하는 동안 경고음이 지속적 짧은 휴식없이 재생하려면. 나는 어쨌든 그것을 성취 할 수있는 빠르고 더러운 접근법을 보여줄 것입니다. SoundBeep이 주 프로세스의 실행을 중단시키지 않는 또 다른 AHK 프로세스를 시작합니다.

예 구조 :

하나의 디렉토리에서 우리는 두 개의 파일, 즉 main.ahkbeep.ahk을 만들 수는

beep.ahk에는 다음이 포함

SoundBeep, %1%, %2% 

main.ahk 포함 S : 당신이 main.ahk를 시작하면

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

, 먼저 다른 프로세스를 생성 및 빈도 및 기간을 위해 그것을 시작 매개 변수를 전달 beep.ahk 호출합니다 (여기 : 및). beep.ahk는 단순히 전달한 내용을 기반으로 사운드를 생성합니다 (%1%%2%에는 시작 매개 변수가 들어 있습니다). main.ahk는 경고음이 끝날 때까지 기다리지 않고도 동시에 볼륨 키 스트로크를 보낼 수 있습니다.
여러 프로세스에서 병렬 실행을 수행해서는 안되기 때문에 교육 목적으로 만 사용해야합니다. 실제 프로젝트에서 배경 사운드를 재생하려면 자신의 사운드 파일을 가지고있을 가능성이 큽니다. 이 경우 SoundPlay은 사운드를 비동기 적으로 재생할 수 있습니다.

관련 문제