IT 관련 팁/오토핫키 Autohotkey

오토핫키 - 나만의 상용구로 속기사처럼 타이핑하기

RayShines 2022. 3. 17. 11:23
반응형

오토핫키를 이용하면 상용구를 만들 수 있다. 오토핫키를 이용하는 가장 큰 이유 중 하나가 반복되는 작업을 하지 않아도 되게 해 준다는 것이다. 특히 같은 문구를 반복적으로 입력해야 하는 일이 있다면 오토핫키가 좋은 대안이 될 수 있다고 생각한다.

 

1. 나만의 상용구 만들기

상용구를 만드는 방법은 간단하다. 

 

 

**** 시작 - 스크립트에 포함시키지 않는다 ****

 

:*:ahk:: ; ahk라고 치면 (한영 관계없음)
Clipboard := "오토핫키(autohotkey) " ; 클립보드에 "오토핫키(autohotkey) "라는 문구를 넣었다가
send ^v ; 지금 현재 창에 붙여 넣기
return

 

**** 끝 - 스크립트에 포함시키지 않는다 ****

 

 

오토핫키로 상용구를 만들 때 가장 거슬리는 것이 한영 전환 문제가 발생하는 것이다. 문제없이 상용구가 입력되는 경우도 있지만 한영 모드가 꼬이는 경우가 있기 때문이다. 특히 상용구 내에 한글과 영어가 섞여 있을 때 그렇다.

 

예를 들어

 

 

**** 시작 - 스크립트에 포함시키지 않는다 ****

 

:*:ahk::
send "오토핫키(autohotkey)"
return

 

**** 끝 - 스크립트에 포함시키지 않는다 ****

 

 

스크립트를 바로 위의 경우처럼 단순하게 짜면 어떤 일이 발생하는지 보자.

 

 

영타로 되어 있을 때는 문제없이 정상적인 상용구가 입력되는데 한타로 되어 있을 때에는 위의 경우처럼 한글이 뒤섞여서 입력된다.  이것을 해결하는 가장 좋은 방법은 클립보드를 거치는 것이다. 클립보드를 거치면 한영 모드에 관계없이 항상 동일한 상용구가 입력된다.

 

 

2. 위의 방법의 장점이자 단점

위의 스크립트를 실제로 실행해보면 ahk를 입력해도 상용구가 입력되지만 ahk의 한타에 해당하는 "뫄"를 입력해도 상용구가 입력된다. 그래서 한영 모드에 관계없이 늘 상용구를 입력할 수 있기 때문에 편리하다. 

 

그런데 이것이 치명적인 단점이 되기도 한다. 왜냐하면 영어로 상용구 핫키를 만들어두었을 때 이것이 자주 쓰는 한글 단어와 겹친다면 아주 귀찮은 일이 발생하기 때문이다.

 

:*:gks::
Clipboard := "오토핫키(autohotkey) "
send ^v
return

 

위와 같은 스크립트를 생각해보자. 그리고 상태에서 "한 번"이라고 타이핑을 해보자.

 

 

위와 같이 타이핑이 된다. 

 

이번에는 "대한민국"과 "한국"을 입력해보자.

 

 

상용구 핫키가 단어 중간에 들어있을 때는 크게 문제가 안되는데, 핫키로 시작하는 단어를 칠 때에는 위와 같은 일이 발생할 수 있다. 

 

따라서 상용구 핫키를 만들 때 자주 쓰는 한글 자모와 겹치지 않도록 궁리를 해야만 한다.

 

 

3. 상용구를 실행시키는 오토핫키 파일을 따로 만들자

상용구는 있으면 편리하지만, 불필요할 때 작동하면 그만큼 불편한 것이 없다. 그렇기 때문에 상용구는 시스템에 상주하는 메인 스크립트에 넣어두면 곤란하다. 하지만 필요할 때 언제나 쉽게 사용할 수 있도록 상용구 기능은 쉽게 on/off 할 수 있어야만 한다. 

 

상용구 핫키를 모아둔 오토핫키 파일을 하나 만들자. 그리고 그 파일의 이름을 routine.ahk 라고 하자.

 

그리고 메인 스크립트에 다음 행들을 추가한다.

 

 

**** 시작 - 스크립트에 포함시키지 않는다 ****

 

+space:: ; shift + space 를 누르면  
Msgbox, 0, 상용구, 시작, 1 ; "상용구"라는 제목, "시작"이라는 내용의 메시지 박스를 1초간 실행
Run, routine.ahk, c:\ 경로는 각자 입력 ; routine.ahk 을 시작
return

 

**** 끝 - 스크립트에 포함시키지 않는다 ****

 

 

그리고 routine.ahk 파일에는 다음 행을 추가한다. 

 

 

**** 시작 - 스크립트에 포함시키지 않는다 ****

 

+space:: ; shift+space를 누르면

msgbox, 0, 상용구, 종료!, 1 ; "상용구"라는 제목, "종료"라는 내용의 메시지박스를 1초간 실행
exitapp ; 이 스크립트를 종료
return

 

**** 끝 - 스크립트에 포함시키지 않는다 ****

 

 

위와 같이 해두면 shift + space 처럼 쉽게 칠 수 있는 키를 이용해 상용구 모드를 쉽게 on/off 할 수 있고 필요할 때만 상용구를 실행시켜 빠르게 타이핑을 할 수 있다.

 

 

 

 

반응형