만약 프로그램을 실행 할 때 중복해서 계속 실행해도 되는 프로그램이 있지만 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
중복실행되면 안되는 프로그램에 위의 코드를 넣어준다면 중복 실행되지 않고 이미 실행 된 경우 조용히 종료되는 프로그램을 만들 수 있습니다.
추가적인 팁으로는 핫키(단축키) 생성 전에 해당 코드를 삽입 해주셔야 합니다. ( 핫키 관련 정보는 하단 링크 참조 )
만약 핫키(단축키) 생성 후 종료코드를 넣게 되면 뒤에 실행 된 프로그램이 핫키를 가져온 후 종료되어 이전 프로그램에서 단축키 동작이 올바르게 동작하지 않을 가능성이 높습니다.
'RPA 만들기 - 함수 사용법' 카테고리의 다른 글
[ Autoit ] 특정 색상 추적하여 해당 색상 자동으로 클릭하기 (0) | 2020.10.04 |
---|---|
[ Autoit ] 화면 색상 변화 인식하기 (0) | 2020.10.02 |
[ Autoit ] 글자 형식 변경하기 (0) | 2020.09.22 |
[ Autoit ] 현재 마우스 커서 상태 구하기 (0) | 2020.09.21 |
[ Autoit ] 마우스 컨트롤 하기 #1 - 기본편 (0) | 2020.09.20 |