[2] 오토핫키 Autohotkey 완벽분해 강좌 - 핫키 및 메시지박스

Posted by 아이티프로13
2018. 5. 1. 00:05 프로그래밍/AutohotKey

안녕하세요. 쿠과자입니다

저번시간에는 오토핫키와 노트패드++를 설치하는 시간을 가졌었는데요

2018/04/26 - [프로그래밍/AutohotKey] - [1] 오토핫키 Autohotkey 완벽분해 - 설치 및 셋팅하기


이번시간에는 오토핫키의 기본인 핫키와, 이를 테스트할 메시지박스에 대해 정확히! 알아보도록 하겠습니다.


Ps.. 강의를 시작하기 전에!

굉장히 도움되는 문서 사이트 하나를 추천해드리겠습니다.

http://autohotkeykr.sourceforge.net/docs/AutoHotkey.htm

오토핫키 문서 사이트인데, 한글로 번역되있는 사이트입니다.

물론 번역하면서 오역이 조금 있겠지만, 굉장히 도움되고, 저도 많이 참고할 예정입니다.





시작하기 전에...


먼저, 핫키에 대해 알아보기 전에 간단한 스크립트 하나를 작성해보고 시작합시다.






위와같이, 전 강의에서 작성한 오토핫키 파일 밑에

아래의 스크립트를 더 넣어봅시다.


F5::

Msgbox,hello world!

Return


그 다음, 저장을 하고

오토핫키 스크립트(.AHK파일)을 더블클릭해 실행 후

F5키를 눌러봅시다.



위와같은 창이 뜨나요?

네, 그럼 정상적으로 오토핫키 스크립트를 하나 짜신겁니다!


그럼, 방금 쓴 코드를 정확히 파악해보..기 전에!

방금 실행한 코드는, 메시지 박스를 띄우고 바로 프로그램이 종료가 되는것이 아닙니다.

return이 되기 때문에, 그 메시지박스를 띄우고 다른걸 할 작업을 멈춰놓은거죠.


그렇기 때문에, 우리가 강제로 프로그램을 종료해야합니다.



위 사진처럼, 작업 표시줄 아래에 나온 H 아이콘을

우클릭->Exit을 차례로 선택하면 방금 만든 오토핫키 프로그램이 종료됩니다.


그럼 이제, 방금 코드를 정확히 확인해보도록 하겠습니다.


F5 - 핫키, Hotkey라고 부릅니다. 코드를 시작하도록 하는 키? 입니다.

Msgbox,hello world! - 메시지 박스를 띄우는 문구입니다.

Return - 이전에 갔던 서브루틴으로 돌아가거나, 현재 루틴을 종료합니다.


아직은 말이 복잡해보일수도 있습니다.

그럼, 하나하나 차례대로 알아보죠.




핫키


먼저, 핫키 핫스트링에 대해서 알아보도록 하겠습니다.

핫키는 위의 설명에서 F5:: 부분에 해당하는데요,

쉽게 말하면 단축키에 해당하는겁니다.


위에 핫키를 쓰고, 밑에 스크립트를 적은 후 실행하면

핫키(단축키)를 누르면 그 및에 있는 스크립트가 쭉 실행되는 형식이죠.




1. 일반적인 형식

일반적으로 형식은 [핫키할 키]:: 이런식입니다.

예제를 하나 보시죠.


n::

msgbox, N을 입력하셨습니다.

return



위의 글을 그대로 붙여넣기하면,

n키를  누르면

"N을 입력하셨습니다"라는 메시지박스가 뜨는걸 알 수 있습니다.


이 핫키는, 일반 숫자, 문자는 물론

F1~F12 포함, 심지어는 컨트롤키, 알트키, 쉬프트키 모두 됩니다!

컨트롤 키도 Control, Alt, Shift, 등으로 대체해 실행하면 됩니다.




 2. 두개의 키 동시에 입력받기


우선, 펑션 키부터 알아보도록 하겠습니다.

펑션 키와 단일 키를 같이 사용할때 쓰는, 심볼들 표입니다.

 #

윈도 로고키 

Alt 키 

Control(Ctrl) 키 

Shift 키

<! / >! 

왼쪽 Alt / 오른쪽 Alt 

<^ / >! 

왼쪽 Control / 오른쪽 Control

<+ / >+

왼쪽 Shift / 오른쪽 Shift 


즉, !F5::

이런식으로 핫키를 쓰면 Alt키와 F5키를 같이 누르면 동작하고,

^R::

이런식으로 핫키를 쓰면, Ctrl키와 R키를 같이 눌러야 동작한다는 것이죠.


그리고, 추가로 <키와 >키는

두개의 키가 있을경우, 각각 왼쪽 키와 오른쪽 키를 뜻합니다.


<!F5:: 의 경우, 왼쪽 Alt키와 F5키를 같이 누르면 된다는 것이죠.



하지만,  위에서 소개한 방식으로는, 컨트롤, 쉬프트, 알트같은 펑션 키만 동시에 사용할 수 있습니다.

그렇다면, n과 f 이런 두개의 키를 입력받을때, 핫키를 실행하는 방법이 있을까요?


네, 있습니다. 바로 &구문을 사용하면 됩니다.


A & B::

msgbox, A와 B가 눌렸습니다.

return


위 스크립트를 실행해보면,

A와 B가 같이 눌렸을때 작동하는것을 알 수 있습니다.

정확히 말하면, A가 눌린 후 B가 눌렸을때입니다.


하지만, 이런 경우

스크립트 실행후 A버튼을 눌렀을때 프로그램이 A키를 먹어버려(?)

A버튼이 작동을 안합니다.

그렇기 때문에, 이런식으로 대처를 해줍니다.


A & B::

msgbox,hello world!

return


A::

send,{A}

return


이런식으로 스크립트를 눌러주면

A가 키보드에서 "떼졌을때" A버튼을 누르고, A와 B가 눌렸을때 msgbox를 출력하게 됩니다.

(참고로, Send에 대해서는 다음시간에 알아볼거지만, Send,{A}는 A버튼을 누른다에 해당됩니다.)

물론 이것도 실제로 A키를 누르는것과 다른것이므로 임시방편의 해결책에 해당됩니다.



3. 마우스를 핫키로 사용하기


그렇다면, 마우스를 핫키로 사용하는 방법이 있을까요?

당연히 있습니다.


바로 LButton, RButton을 핫키로 쓰면 됩니다.


RButton::

msgbox, 오른쪽 마우스 버튼이 눌렸습니다.

return


이를 통해, 마우스를 클릭했을때도 제어할수 있습니다.

단, 이걸 쓸때 주의할 점이 있는데


이렇게 할 경우 마우스 키가 씹히고 대신 스크립트가 실행되기때문에,

테스트할때 마우스 조작을 사용할수 없게되서, 심지어는 스크립트를 끄지도 못해 

컴퓨터를 재부팅하는 사태가 발생할 수도 있습니다.


그렇기 때문에, 알아서 잘 테스트(?) 해보시기 바랍니다.




4. 핫스트링(Hotstring)

다음으로 핫스트링입니다

핫스트링은 오토핫키를 어느정도 아시는분들도 처음 들어보시는 분들도 있을텐데요,


일단 예제부터 보시죠.


::abc::

msgbox, abc를 입력하셨습니다.

return


위와같은 예제를 실행시키면,

abc를 차례대로 누른 후 엔터, 탭, -()[]{}':;"/\,.?!를 입력하면 핫키가 실행되는것을 알수 있습니다.


즉, 문자열 자체를 핫키로 인식한다는 것이죠.

속기사 자판처럼 단축말을 쓸때나, 빠르게 말을 쳐야할때 응용해서 사용하거나,

사용법은 무궁무진합니다.




메시지박스


사실, 아까 핫키를 공부하면서 메시지박스에 대해서도 아셨을 분들이 많으실텐데요,

msgbox <-이 구문이 메시지박스 스크립트였습니다.


구문은 흔히 이렇게 구현됩니다.

Msgbox, 텍스트

Msgbox, [옵션], [창 제목], [텍스트], [꺼질때까지 시간]


위처럼 메시지박스를 단순히

텍스트 하나만 띄우는걸로 사용할수도 있고


뒤에 옵션과 창 제목, 텍스트, 꺼질때까지의 시간을 입력해

디테일하게? 사용할수도 있습니다.



옵션의 경우에는 위의 사진을 참고하셔서 적으시면됩니다.

일반적으로 공란을 이용하신다면, 0이 들어갑니다.


또한, 꺼질때까지의 시간은 안적으셔도 되고,

적는 경우 초단위로 적습니다.



예문입니다.

F1::

Msgbox, 안녕 세상!

Msgbox, 48,곧 종료,이 메시지 박스는 곧 종료됩니다,5

return

 



어떤가요, 정말로 5초 후에 종료가 되는게 확인이 됬나요?





지금까지 핫키와 메시지박스에 대해서 알아봤습니다.

다음 시간에는 Send 구문, 즉 키보드 제어에 대해서 정확히! 알아볼려고 합니다.


블로그 특성상, 모든 정보를 담지 못해 아쉽습니다.

정확한 정보를 원하시는 분들은, 아래 링크를 참고하시기 바랍니다.




그럼 오토핫키 공부 힘내도록 하세요!




공감 버튼을 눌러주시면

블로거에게 힘이 됩니다!