Settimer
타이머 ( Settimer ) 명령은 지정한 시간으로 특정 작업을 실행하도록 설정할 수 있는 매우 유용한 기능입니다.
SetTimer를 사용하면 주어진 간격마다 특정 라벨(함수)이나 서브루틴을 자동으로 실행할 수 있습니다.
잠깐, Settimer 를 통해 다중 쓰레드를 생각하고 있다면,
오토핫키는 다중 쓰레드를 지원하지 않습니다
"쓰레드" 란.. 무엇인가요?
AutoHotkey에서 "쓰레드"는 특정 작업을 동시에 처리하기 위한 메커니즘입니다.
AutoHotkey는 일반적으로 멀티쓰레딩을 직접 지원하지 않기 때문에,
특정 작업을 동시에 실행하기 위해 사용되는 주요 방법은 "타이머"나 "별도의 스크립트"입니다.
https://autohotkeykr.sourceforge.net/docs/misc/Threads.htm
오토핫키는 아쉽게도... 멀티 쓰레드를 흉내만 낼수 있고
직접적인 멀티 쓰레드를 지원하지 않습다
공식 HELP 파일을 보면 settimer의 기본 문법입니다.
SetTimer [, Label, Period|On|Off|Delete, Priority]
Label
핫키의 이름이나, 서브루틴의 이름이 될 수 있습니다.
모든 다른 명령어의 매개변수처럼 라벨은 변수의 참조가 될 수 있습니다.
On
이전 기간(period) 동안 비활성화되어 있던 타이머를 재활성화합니다. 타이머가 존재하지 않으면, 새로 만듭니다
Delete
기존의 타이머를 끄고 삭제합니다. 타이머가 함수 객체와 연관이 있다면, 객체는 해제됩니다.
Period
해당 매개변수는, 밀리 초의 개수로 사용하며, 타이머를 갱신하거나, 생성합니다.
시간은 마지막의 라벨 서브루틴이 시작한 이후로 경과하는 시간입니다. 이 시간이 지나면 다시 시간초를 갱신하여
라벨을 실행할 준비를 합니다.
예시
#Persistent
#SingleInstance,Force
settimer,null_a,3000
return
null_a:
msgbox,3초마다 실행됩니다
return
셋타이머 한번 실행후, 중지
SetTimer, ShowMessage, 2000
ShowMessage:
MsgBox, 타이머가 호출되었습니다!
SetTimer, ShowMessage, Off
return
Esc::ExitApp
2개의 settimer 를 사용할 경우
; 첫 번째 타이머 설정: 3000ms(3초)마다 `FirstTimer` 레이블을 호출
SetTimer, FirstTimer, 3000
; 두 번째 타이머 설정: 5000ms(5초)마다 `SecondTimer` 레이블을 호출
SetTimer, SecondTimer, 5000
; 첫 번째 타이머가 호출될 때 실행되는 레이블
FirstTimer:
MsgBox, 첫 번째 타이머가 3초마다 호출됩니다!
return
; 두 번째 타이머가 호출될 때 실행되는 레이블
SecondTimer:
MsgBox, 두 번째 타이머가 5초마다 호출됩니다!
return
; 스크립트 종료를 방지하기 위한 기본 핫키
Esc::ExitApp
'오토핫키 > 오토핫키 백과사전' 카테고리의 다른 글
오토핫키(AutoHotkey) Filemove 파일 이동 명령어 (0) | 2024.12.22 |
---|---|
오토핫키(AutoHotkey) IniWrite / Iniread 데이터 저장하고, 불러오기 (0) | 2024.11.03 |
오토핫키(AutoHotkey) Break ( 회돌이,반복문 탈출 ) 설명서 (4) | 2024.09.05 |
오토핫키(AutoHotkey) ClipWait 설명서 (0) | 2024.09.03 |
오토핫키(AutoHotkey) Clipboard / ClipboardAll (클립보드) 설명서 (0) | 2024.08.19 |