IT 관련 팁/오토핫키 Autohotkey

오토핫키 - Sleep | 슬립 | 딜레이 하기 | 대기

RayShines 2022. 10. 26. 00:08
반응형

오토핫키에는 스크립트 진행을 잠깐 대기하도록 하는 sleep이라는 기능이 있습니다.

스크립트를 짜다보면 창이 열리기를 기다리거나, 혹은 작동이 완료되기를 기다려야 할 때가 있습니다. 이것을 무시하고 진행을 하면 스크립트 작동 전체가 꼬이는 경우가 있습니다.

 

1. 작동 방식

작동 방식은 매우 간단합니다.

 

sleep, 1000

 

위와 같이 스크립트 중간에 sleep, 이라고 넣은 뒤 시간을 넣어주면 됩니다. 위의 코드에서 1000은 msec, 즉 1000분의 1초 단위입니다. 따라서 1000이라고 치면 1초가 됩니다. 10초 동안 기다리게 하고 싶으면 10000을 넣어줘야 합니다.

 

sleep은 강제로 스크립트를 무조건 쉬게 하는 명령어입니다.

 

반면 winwaitactive, winwaitclose는 창이 열리거나 창이 닫히기를 기다리라는 명령어입니다. 

 

2022.04.08 - 오토핫키 - 창을 열고 닫을 때 오류 발생 시 Winwaitactive, Winwaitclose 활용하기

 

오토핫키 - 창을 열고 닫을 때 오류 발생 시 Winwaitactive, Winwaitclose 활용하기

오토핫키로 프로그램을 실행시키고 닫다 보면 실행이나 종료 과정 중에 자연스럽게 지연이 발생할 수밖에 없다. 그것을 고려하지 않고 스크립트를 짜다보면 스크립트가 더 이상 진행되지 않거

rayshines.tistory.com

 

그러나 sleep은 조건 없이 그냥 무조건 기다리게 만듭니다. winwaitactive, winwaitclose의 단점 중 조건이 형성되지 않으면 스크립트가 그냥 그 자리에 얼어버린다는 데 있습니다. 

 

예를 들어 어떤 창이 활성화되길 기다리고 있는데 그 창이 활성화되지 않으면 영원히 그 자리에 멈춰있게 됩니다. 이런 일이 흔하게 발생하진 않긴 하지만, 갑작스럽게 알림창이 뜨면서 그것이 전경에 활성화되면 이런 일이 벌어질 수 있습니다. 

 

그런데 sleep은 이런 조건 없이 무조건 기다리라는 시간 동안 기다렸다가 다음 줄로 진행합니다. 당연히 오류의 여지가 많이 있습니다만 잘만 쓰면 매우 유용합니다.

 

예를 들어 정해진 시간에 클라우드에 파일을 올린다고 해보겠습니다. 실시간 연동이 아니라 정해진 시간에 특정한 폴더를 압축해서 구글 드라이브에 올리는 스크립트를 짜볼 수 있습니다. 그런데 파일 용량이 좀 커서 시간이 좀 걸린다면 여기에 sleep, 60000을 설정해둘 수 있습니다. 그럼 1분을 기다릴 겁니다. 

 

그리고 나서 예전에 올린 파일을 찾아서 지우는 스크립트를 실행해볼 수 있다는 것입니다.

 

2. 요약 정리

Sleep을 스크립트 중간에 적절히 끼워 두면 스크립트의 작동이 원활해집니다. 그런데 너무 많이 넣으면 스크립트가 한 번 돌아가는 데 걸리는 시간이 너무 늘어나므로 적절하게 사용하는 것이 매우 중요합니다. 

 

감사합니다.

 

 

반응형