만약 프로그램을 실행 할 때 중복해서 계속 실행해도 되는 프로그램이 있지만 1번만 실행되면 중복해서 실행되지 않아야 하는 프로그램도 있습니다.

 Autoit 편집기의 도움말에서 _Singleton의 Example 를 가져오면 다음과 같은 내용을 확인 할 수 있습니다.

#include <Misc.au3>
#include <MsgBoxConstants.au3>

If _Singleton("test", 1) = 0 Then
    MsgBox($MB_SYSTEMMODAL, "Warning", "An occurrence of test is already running")
    Exit
EndIf
MsgBox($MB_SYSTEMMODAL, "OK", "the first occurrence of test is running")

 

해당 예제의 동작 확인을 하는 방법은 우선 해당 스크립트내용을 빈 문서에 붙여 넣은 후 test.au3로 저장 합니다. 

그 후 상단 메뉴 Tool > Build 를 눌러주시면 test.exe 파일생성 된 것을 확인 할 수 있습니다.

이제 test.exe 를 처음 실행해 봅니다.

처음 실행 한 대화상자를 닫지 않은 상태로 다시 한번 test.exe를 실행합니다. 

 

실행 된 상태에서 다시 실행 하면 중복 실행 되었다며 경고 대화상자가 나타나게 됩니다.  예제 코드를 응용하면 중복 실행 방지 코드로 다음과 같이 사용이 가능합니다.

#include <Misc.au3>
if _Singleton(@ScriptName,1) = 0 Then Exit 

 

중복실행되면 안되는 프로그램에 위의 코드를 넣어준다면 중복 실행되지 않고 이미 실행 된 경우 조용히 종료되는 프로그램을 만들 수 있습니다.

추가적인 팁으로는 핫키(단축키) 생성 전에 해당 코드를 삽입 해주셔야 합니다.  ( 핫키 관련 정보는 하단 링크 참조 ) 

[ Autoit ] 핫키(단축키) 생성하기

 

[ Autoit ] 핫키(단축키) 생성하기

버튼이 아닌 단축키로 동작하기 위해서 핫키를 지정해서 넣을 수 있습니다. Autoit 편집기를 실행 후 [ File ] > [ New ] 하여 빈 문서를 생성하여 저장 후 [ F1 ] 키를 누르세요.  도움말이 표시되면 ��

smart-west.tistory.com

만약 핫키(단축키) 생성 후 종료코드를 넣게 되면 뒤에 실행 된 프로그램이 핫키를 가져온 후 종료되어 이전 프로그램에서 단축키 동작이 올바르게 동작하지 않을 가능성이 높습니다.

 

 

+ Recent posts