프날 오토핫키 강좌  v2

⚠ 이 강좌는 오토핫키 v2를 다룹니다

지금 보시는 강좌는 과거 오랜 시간동안 알려진 오토핫키(v1.1)의 차세대 버전인 오토핫키 v2를 다루고 있습니다.
만약 구버전인 '오토핫키 v1.1'의 강좌를 찾으신다면 프날 오토핫키 강좌(https://pnal.kr)를 봐주시면 되지만, 새로 오토핫키를 배우신다면 v2 버전을 배우시는 것을 강력히 추천드립니다.

21. 스크립트 종료 ExitApp


지난 19강(핫키)에서, 핫키 동작 이후에도 스크립트가 계속 실행되어있던 것 기억하시나요? 핫키를 사용하면 그 핫키 입력을 계속 대기해야 하는 상태이기 때문에, 스크립트가 자동으로 종료되지 않았습니다. 그래서 트레이 아이콘의 메뉴를 이용해서 수동으로 종료해주었죠.

이번 강에서는 스크립트를 종료하는 함수인 ExitApp을 배우겠습니다.

ExitApp

ExitApp이 하는 일은 그저 현재 스크립트를 종료하는 일 뿐입니다. 스크립트가 한 줄씩 진행되다가 ExitApp을 만나면 그대로 종료되죠. 원형은 아래와 같습니다.


ExitApp([ExitCode])
ExitApp 함수의 원형

ExitCode 매개변수는 선택 매개변수네요. 스크립트가 종료될 땐 스크립트를 실행한 주체에게 종료 코드를 전달하게 되는데, 그 코드를 설정하는 매개변수입니다.

그런데, 기초 강좌에서 다룰만큼 핵심적이면서 간단한 내용은 아닙니다. 따라서 우리는 이 매개변수를 생략할 것입니다.

실습

1. 핫키의 동작이 끝나면 프로그램을 종료

아래는 핫키 동작을 실행한 뒤, ExitApp을 통해 스크립트를 즉시 종료하는 예제입니다.

1F1::
2{
3 MsgBox("Press OK to exit script")
4 ExitApp
5}
예제 1. F1키를 누르면 알림 상자를 표시한 뒤 스크립트가 종료되는 예제

핫키를 눌러 표시된 알림 상자를 닫으면 스크립트가 ExitApp을 만나서 종료되겠죠.

어렵지 않아서 실습 예제도 1개만 준비하였습니다. 이렇게 스크립트가 한 줄씩 아래로 진행하다가 ExitApp을 만나면 즉시 종료된다는 점을 알았다면 이번 강은 전부 이해하신 것입니다. 다음 강도 이번과 같이 간단하게 진행하겠습니다.

Tip: ExitApp 뒤에 괄호()가 생략된 이유

ExitApp 함수 뒤의 ExitCode 매개변수는 선택 매개변수라 생략해주었는데, 도대체 왜 소괄호(())도 없나 의문이 들으실 수도 있습니다. 그러니까, 왜 ExitApp()처럼 적지 않아주었냐 이것이죠.

사실 오토핫키에선 함수를 호출할 때 일부 조건만 만족한다면 괄호()를 생략할 수 있습니다. 그럼에도 불구하고 본 강좌에선 인수가 없는 경우에도 일관성을 위해 MsgBox()와 같이 괄호를 생략하지 않고 '아무 인수도 전달하지 않음'을 명시적으로 표현해주는 편입니다.

그러나 ExitApp의 ExitCode 매개변수는 거의 쓰이지 않는 매개변수이기 때문에 거의 항상 생략됩니다. 어차피 쓰이지 않을 매개변수의 생략 여부를 굳이 표시하여 ExitApp()으로 적는 것보단, 아예 ExitApp으로 적는 것을 추천합니다. 관용적인 표현을 원칙이라는 이름으로 배척할 필요는 없어 보입니다.

질문하러 가기