오토핫키(AutoHotKey) 기초강좌 #2 - 프로그래밍의 시작, GUI 만들기




 전체 강좌

 1강 - 오토핫키(AutoHotKey) 소개

 2강 - 프로그래밍의 시작, GUI 만들기

 3강 - 매크로 프로그래밍 1 (Button, Loop, if 사용법)

 4강 - 매크로 프로그래밍 2 (ImageSearch, Send, Sleep)

 5강 - 매크로 프로그래밍 3 (Gui Submit)

 6강 - 매크로 만들기 응용 1 (if 응용, CoordMode)

 7강 - 매크로 만들기 응용 2 (핫키, if 응용)

 8강 - 매크로 만들기 응용 3 (While, GUI와 변수의 활용 1)

 9강 - 매크로 만들기 응용 4 (GUI와 변수의 활용 2)

 10강 - 매크로 만들기 응용 5 (함수1)

 11강 - 매크로 만들기 응용 6 (함수2)

 12강 - 매크로 제작 예제

















안녕하세요~ 킴영감입니다.


지난시간에 오토핫키에 대한 소개와 프로그램 설치에 관해 설명 드렸습니다.

이번 시간에는 앞으로 우리가 함께 해 나가야 할 프로그래밍을 어떤 시각을 가지고 바라보아야 하는가에 대해 이야기 하려고 합니다.


핵심을 먼저 말씀드리면 "내가 필요한 기능을 가진 명령어(또는 함수)를 어떻게 사용하는지에 집중하라" 입니다. (여기서 함수란, 특정한 기능을 수행하도록하는 미리 작성된 코드입니다.)


우선 이렇게 말씀드릴 수 있는 이유는 이 강좌를 보시는 분의 목표가 전문 프로그래머가 되는 것이 아니기 때문입니다.


앞으로 저와 함께 많은 명령어들의 사용방법들을 공부하게 될 것입니다. 각 명령어들을 어떻게 사용하는지에 집중하시면 됩니다. 예를 들면, 화면상에서 이미지를 찾는 기능을 사용하고 싶을 때 ImageSearch라는 명령어를 사용한다는 것과 이를 사용하는 방법을 숙지하시면 됩니다. 도저히 이해가 안되시는 분은 강좌때 마다 제가 작성해 드리는 예제를 똑같이 따라하신다고 생각하시면 됩니다. 그리고 오토핫키 명령어 사전(?)을 항상 켜놓고 참고하시는 것을 권장합니다.

링크1 - http://ahkscript.org/docs/commands/index.htm (초보를 벗어나기 위해서는 필수입니다.) 

링크2 - http://ahkplant.tistory.com/ (명령어를 한글로 설명해놓은 블로그입니다.)

영어로 되어 있지만 대부분 구글링 하시면 한국어 설명을 찾으실 수 있습니다.


여기까지 이해 하셨으면 다음 단계는 "내가 원하는 프로그램은 무엇이고 어떻게 시작해야 하는가?"입니다. 이는 주관적으로 프로그래밍을 하는데 가장 중요한 단계라고 생각합니다. 그러니 반드시 천천히 깊이 생각하시면서 강좌를 보셨으면 합니다.


먼저 "내가 원하는 프로그램은 무엇인가?"에 대해 생각해 봅시다. 우리는 첫 강좌를 시작으로 매크로를 만들기 위해 공부를 시작했습니다. 그럼 "매크로는 무엇인가?"에 대해 생각해봅시다. 매크로는 반복적인 작업을 자동으로 하게끔 하는 프로그램입니다. 여기까지는 깊이 생각 할 것이 없습니다. 하지만! 다음 단계인 "반복되는 작업이 무엇이며, 어떠한 순서로 동작하는가?"를 생각 할 때 부터는 충분히 깊게 생각하셔야 합니다. 원하는 작업과 순서를 충분히 생각하셨다면 다음 단계로 넘어가시면 됩니다.


이제 "어떻게 시작해야 하는가?"에 대한 답을 드리겠습니다. 우선 수첩을 준비하시고 반복되는 작업을 적습니다. 다 적으신 뒤에 각각의 작업을 하기위해 필요한 기능을 적습니다. 제가 적은 것을 예로 보여드릴테니 각자 원하는 작업을 따라서 적어보시기 바랍니다.



다음은 반복되는 작업을 순서도로 그립니다. 어릴적 배운 순서도에 도형은 필요없습니다. 그냥 화살표만 그려주면 됩니다. 이 역시 아래의 그림을 보시고 원하시는 작업의 순서도를 따라 그리시면 되겠습니다.



여기까지 따라오신 분은 프로그래밍을 시작할 모든 준비가 되신 것입니다.

그럼 작성한 순서도를 바탕으로 한 프로그래밍 강좌를 본격적으로 시작하겠습니다.




오늘은 가볍지만 노가다 작업인 GUI 만들기에 대해 알려드리고 간단한 예제를 함께 구현해 보겠습니다. 스크립트 작성에 앞서 한가지 이해하셔야 할 내용이 있습니다. 앞으로 작성하는 모든 스크립트는 "위에서 아래로 한줄씩 실행된다"라는 것입니다. 단순하게 말 그대로 받아드리시면 됩니다. 그럼 진짜 강좌를 시작하겠습니다.


GUI는 그래픽으로 이루어신 사용자 인터페이스를 말합니다. 쉽게 말하면 프로그램 화면을 만드는 것입니다.


오토핫키에서는 버튼, 텍스트, 에디트 등의 다양한 GUI를 제공하며 각각의 사용방법만 숙지하시면 누구나 멋있는 프로그램을 제작할 수 있습니다. 


현재 단계에서 우리에게 필요한 GUI는 던전을 몇번 돌았는지 표시 할 텍스트와 시작, 종료할 수 있는 버튼 입니다.


GUI 사용하기


GUI를 사용하는 문법은 아래와 같습니다.


 Gui, Add, 사용할 기능, 옵션, 이름


GUI를 사용하실때는 항상 위와 같은 방법으로 사용하시면 됩니다. 

- 앞에 있는 Gui, Add 는 GUI를 추가할때 항상 똑같이 사용하시면 됩니다.

- 사용할 기능부분에는 텍스트의 경우 Text, 버튼의 경우 Button을 사용하시면 됩니다. 

- 옵션 부분에는 화면구성에 관련된 다양한 옵션이 있지만 우리는 위치와 크기설정, 변수설정만 사용하면 됩니다.

- 이름 부분에는 텍스트의경우 표시할 글을 적으시면되고, 버튼의 경우 버튼의 이름을 적으시면 됩니다.


그럼 실습을 해보도록 합시다.


우리에게 필요한 기능을 나열 해 보면 프로그램 제목을 표시할 텍스트, 현재 상태를 표시할 텍스트, 던전 클리어 횟수를 표시할 텍스트, 매크로를 시작할 때 필요한 버튼, 매크로를 종료할 때 필요한 버튼으로 총 5개의 GUI가 필요합니다.


여기까지 숙지가 되셨으면 지난시간에 설치한 오토핫키 편집기를 실행시킵니다.


입력창에 다음과 같이 코드를 작성합니다.



코드 설명을 해 드리겠습니다. 


Gui, Add 는 모두 똑같습니다. 

세번째 항목인 사용할 기능 부분에 텍스트를 표시할 곳에는 Text, 버튼을 표시할 곳에는 Button을 적으시면 됩니다.

네번째 항목인 옵션 부분에는 텍스트와 버튼의 크기를 입력합니다. 2번 줄에 x30 y5 w110 h20 의 경우 (30, 5)의 위치에서 시작하는 넓이 110, 높이 20의 텍스트를 만드는 옵션입니다. 3번줄을 보시면 위치와 크기를 지정하는 옵션 뒤에 vA가 있습니다. 오토핫키에서 옵션을 적는 부분은 스페이스바로 구분하며 vA, vB와 같이 표시되는 것은 변수 선언을 의미합니다. 변수란 어떤 값을 저장할 수 있는 공간을 의미하며 3번 줄의 vA에는 "준비!!!" 라는 텍스트를 담고 있는 것입니다.

GUI를 표현하는 코드를 모두 작성한 다음에는 Gui, Show를 입력해 주셔야 작성한 프로그램의 화면이 윈도우에 나타나게 됩니다.



이제 키보드의 F5를 누르거나 아래의 그림에 빨간색으로 표시되어있는 Run Script 버튼을 누르시면 프로그램을 저장하는 화면이 나오고 작성한 스크립트를 저장합니다.




이렇게 저장을 완료하면 아래와 같이 프로그램이 실행됩니다.



허접해 보이지만 매크로를 만들기 위한 첫걸음을 땠습니다. 


시작버튼과 종료버튼을 눌러도 아무 반응이 없을 것입니다. 아직 버튼을 눌렀을때 실행할 동작에 관한 코드를 작성하지 않았으니...ㅋ

다음시간부터 프로그램을 작동시키기 위한 코드를 하나씩 배워 볼 것입니다. 



오늘 첫걸음을 땐 만큼 코드를 바꿔가 보면서 어떻게 구현이 되는지 반드시 테스트하고 익히시기 바랍니다.


이것으로 두번째 강좌를 마치겠습니다.


블로그 이미지

킴영감

프로그래밍과 게임공략, 게임과 관련된 프로그램에 대한 내용을 다룹니다.

댓글을 달아 주세요

  • 네오 2015.08.22 18:52  댓글주소  수정/삭제  댓글쓰기

    저기 x30y5w110h20 이것들은 고정인가요

    • 킴영감 2015.08.22 20:06 신고  댓글주소  수정/삭제

      각 Gui 요소들의 좌표와 크기를 지정해주는 값들입니다~
      숫자를 바꿔가면서 실행해보시면 쉽게 이해하실 수 있을거에요~^^

  • 멈추지말아요 2015.09.06 19:36  댓글주소  수정/삭제  댓글쓰기

    한글 입력은 어떻게 해야 하나요?

    계속 이상한 기호로만 나오네요.

    • 킴영감 2015.09.06 19:47 신고  댓글주소  수정/삭제

      1강에서 SciTE 설치방법중에 언어설정하는 부분을 빼먹으신 것 같네요.
      Language를 한국어로 바꿔주시고 File을 Korean Wansung으로 바꿔주시면 됩니다.

  • 멈추지말아요 2015.09.06 23:18  댓글주소  수정/삭제  댓글쓰기

    네 그렇게 해서 한글화는 했는데 스크립트에 한글을 입력하면 이상한 모양이 나오네요.

    • 킴영감 2015.09.07 11:16 신고  댓글주소  수정/삭제

      음...제 생각에는 한글 입력기 문제인 것 같습니다.

      제어판 -> 국가 및 언어 -> 키보드 및 언어로 들어가셔서

      키보드 변경을 누르시고 Microsoft 입력기로 설정되어 있는지 확인해보시고, 다른것으로 되어 있으면 기존에 키보드를 삭제하신 뒤 추가 버튼을 눌러서 한국어->Microsoft 입력기 를 선택하시면 됩니다.

      만약 이것으로도 해결이 안될 경우 저도 정확한 해결방법을 모르겠습니다.ㅠ
      혹시나 해서 제가 사용하고 있는 프로그램을 링크합니다. 다운받으시고 언어설정을 똑같이 해주시면 됩니다.
      링크 - http://elderlykims.tistory.com/attachment/cfile23.uf@2479BC4955ECF1400968A1.zip

  • 감사합니다 2015.12.06 17:00  댓글주소  수정/삭제  댓글쓰기

    감사합니다 1강부터 따라가고있습니다

  • 가르쳐주세요 2015.12.26 21:33  댓글주소  수정/삭제  댓글쓰기

    편집기에서 저 명령어 다치고 저장을 했는데 실행하면 저렇게 안뜨네요 어떻게 해결해야하나요 2강에서 막히네요.

  • 실행오류 2016.02.14 18:29  댓글주소  수정/삭제  댓글쓰기

    f5번을 누르면 저장하는 화면이 나오지않고 TestSuite.ahk라는 프로그램이나오고
    An older instance of this script is already running. Replace it with this instance?
    Note: To avoid this message, see #SingleInstance in the help file.
    이라고 뜨네요 예를 누르고 실행하면 실행이 되긴되요

    • 킴영감 2016.02.14 18:36 신고  댓글주소  수정/삭제

      처음 실행하시면 파일 -> 새로만들기 를 통해 새로운 파일을 만드셔야 합니다^^
      파일을 만드신 뒤 스크립트를 모두 작성하셨으면 f5를 누르지 마시고 세모모양의 버튼을 마우스로 클릭하셔야 저장하는 화면이 나옵니다. 저장 한 뒤부터는 f5를 누르시면 됩니다^^

  • 에러 2016.07.01 23:51  댓글주소  수정/삭제  댓글쓰기

    error: Invalid option.
    이라고 뜨면서 코드들이 아래 적히네요 해결방법좀요

  • 감사합니다 2016.10.06 14:29  댓글주소  수정/삭제  댓글쓰기

    입문자가 이해하기 쉽게 설명해 주셨네요 감사할따름입니다

  • 리브 2016.10.18 17:07  댓글주소  수정/삭제  댓글쓰기

    ㅠㅠㅠ 정말 강좌 감사한데요 질문 하나만 할게요

    오토핫키 편집기로 작성하신다고 써놓으셨는데

    편집기 이름이 무엇인가요..?

    편집기를 못찾겠어요 ㅠㅠ

  • taeyo 2017.11.18 17:45  댓글주소  수정/삭제  댓글쓰기

    >"C:\Program Files\AutoHotkey\AutoHotkey.exe" /ErrorStdOut "C:\Users\sec\Desktop\새 AutoHotkey Script.ahk"
    'C:\Program'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
    배치 파일이 아닙니다.
    >Exit code: 1 Time: 0.1696
    이렇게 나오는데 뭐가 잘못된 걸까요??
    재설치 해봐도 똑같습니다 ㅜㅜ 도와주세요...

  • Shey3750 2018.02.24 15:06  댓글주소  수정/삭제  댓글쓰기

    어떤 키 한번을 누르면 매크로가 실행되고, 다시 그 키를 누를시에 작동이 멈추게 하는 방법이 있나요?

  • 김태훈 2018.08.23 07:17  댓글주소  수정/삭제  댓글쓰기

    Gui, add, Text, x30 y5 w110 h20, 매크로 프로그램

    에서 가로 세로 크기를 x50 / w150으로 변경하면 창이 커지는데

    글씨를 가운데 정렬(?) 하려면 어떻게 해야하나요???

  • Greenholl 2018.08.25 01:53  댓글주소  수정/삭제  댓글쓰기

    >"D:\\AutoHotkExit code: 1 Time: 0.1106
    ey.exe" /ErrorStdOut "C:\Users\user\Desktop\asdq.ahk"
    파일 이름, 디렉터리 이름 또는 볼륨 레이블 구문이 잘못되었습니다.
    >
    이라고뜨는데 어찌하나요?

  • 컴스1반학생 2019.01.27 19:28  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 컴퓨터를 배우는 학생입니다 .
    똑같이 따라했는데 error ;invalid option.
    Specifically:w 라고뜨면서 제가 썼던 코드들이 그대로 나옵니다.
    해결이 안되서 3장으로 못넘어 가고있어요 ㅠㅠㅠ 도와주세요