프날 오토핫키 강좌  v2

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

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

46. 지나쳤던 내용


한 편의 강좌로 구성하기엔 내용이 부족하지만, 알면 좋은 내용을 한데 엮어보았습니다.

주석

코드를 이해하기 쉽게 주석(Comment)을 달 수 있습니다. 오토핫키에서 한 줄 주석은 ; 기호로, 여러 줄 주석은 /**/로 지정할 수 있습니다. 주석 안의 내용은 인터프리터가 해석하지 않기 때문에, 자유롭게 설명을 적을 수 있습니다.

1;한 줄 주석
2
3/*
4여러 줄 주석
5여러 줄 주석
6여러 줄 주석
7*/
주석의 사용 방법

핫키 블록의 생략

핫키가 해야할 동작이 한 줄이면 그 블록을 생략하고, 핫키 구문의 :: 뒤에 이어서 명령을 적어줄 수 있습니다. 제어문의 내용이 한 줄일 때 그 블록을 생략했던 것과 마찬가지입니다. 예를 들어서, 아래와 같은 핫키 구문은 블록을 지정해주지 않았지만 올바르게 작동합니다.

1F1::ExitApp
2F2::MsgBox("Hello")
3F3::Send("123")
핫키 블록을 생략하여 한 줄로 작성하는 방법

앞으로 강좌에서 필요한 경우, 위와 같이 블록을 생략하여 예시를 작성하도록 하겠습니다.

함수 호출 시 괄호의 생략

함수를 호출할 때, 그 반환 값이 필요하지 않으면서 몇 가지 조건만 만족한다면 괄호를 생략할 수 있습니다. 이 경우 함수명과 매개변수 사이는 반드시 띄워줍니다. 예를 들어서, MsgBox는 아래와 같이 쓸 수 있습니다.

1MsgBox "괄호가 생략된 MsgBox"
MsgBox 함수의 괄호가 생략된 모습

다만, 괄호를 생략할 수 있는 조건을 설명하기 까다로우며, 다른 프로그래밍 언어는 대부분 () 기호를 생략할 수 없기 때문에 저는 오토핫키 v2에서도 () 기호를 생략하지 않는 것을 좋아합니다. 따라서 강좌에서도 () 기호를 생략하지 않고 있습니다. 그 편이 더욱 일관적이고 명확하다고 생각합니다.

단, ExitApp 함수만은 관용적인 표현으로 ExitApp() 대신 ExitApp으로 표기하겠습니다.

Tip: 괄호 생략에 대한 공식 문서

대부분 함수 호출 상황에선 괄호를 생략할 수 있지만, 일부 생략할 수 없는 경우가 있습니다. 그 경우를 이곳에서 설명하기엔 너무 길어지고, 무엇보다 "모든 함수 호출에는 괄호를 붙인다"라는 원칙을 세우면 고려하지 않아도 될 문제이니 아래와 같이 공식 문서의 해당 설명 연결로 갈음합니다.

https://www.autohotkey.com/docs/v2/Language.htm#function-call-statements

질문하러 가기