오토핫키 강좌 #2 - GuiControl (오토핫키 붙여넣기)




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


오늘도 강좌를 쓰기위해 컴퓨터 앞에 앉았는데 "무슨 내용으로 해야할까?"라는 생각을 한참동안 했습니다.


제 강좌 특성상 모바일게임 매크로를 만들고 싶어하는 분들이 다수일 것이라고 생각되어 오늘도 매크로 프로그램을 좀더 그럴듯하게 만들 수 있는 것으로 해야겠다고 결정했습니다.^^


오늘 강좌는 GuiControl을 이용해서 매크로를 꾸며볼 것입니다. GuiControl의 기능 중 몇가지만 다룰 것입니다.


1. GuiControl이란?


GuiControl은 이름처럼 Gui를 Control하는 명령어입니다. 


Gui에 속하는 Text, Edit, Checkbox, Radio 등 모든 요소들을 제어할 수 있으며 아주 간단한 방법으로 사용하실 수 있습니다.



2. GuiControl 사용법


GuiControl은 아래와 같은 틀을 가지고 사용합니다.


 GuiControl, 명령어, Gui에 할당된 변수이름, 내용


첫번째 항인 GuiControl항상 그대로 적으시면 됩니다.


두번째 항의 명령어는 Gui를 어떻게 제어할 것인가를 결정하는 부분입니다. 예를 들어 특정Gui의 위치를 이동하고 싶으면 "Move", 숨기고 싶으면 "Hide"와 같이 원하는 동작에 따라 정해진 명령어를 적어 넣으시면 됩니다.


세번째 항은 Gui를 생성할 때 작성했던 Gui에 할당된 변수의 이름을 적으시면 됩니다. 예를 들어 Text를 만들면서 텍스트라는 변수를 할당 했을 경우 "Gui, Add, Text, x좌표 y좌표 넓이 높이 v텍스트, 내용" 이라고 생성하셨을 것입니다. 이들 중 Gui에 할당된 변수의 이름인 "텍스트"를 적으시면 됩니다. 여기서 한가지 주의하실점은 반드시 변수가 할당되어 있어야지만 GuiControl을 이용해서 제어를 하실수가 있습니다.


마지막으로 내용입니다. 내용부분에는 제어할 Gui가 무엇이냐에 따라 달라지지만 간단하게 Gui의 내용을 바꿀때 바꾸고 싶은 내용을 적는 부분이라고 생각하시면 됩니다. 


3. GuiControl 적용하기


GuiControl의 기본 사용법을 알았으니 우리가 필요한 부분에 함께 적용해 보겠습니다.


3-1) Gui 비활성화


대부분의 매크로들을 보면 시작 버튼을 눌렀을 때 설정을 하는 부분과 버튼들이 비활성으로 바뀌는 것을 보셨을 것입니다. 저는 개인적으로 이부분이 프로그램을 그럴듯하게 꾸미는데 가장 효과적인 부분이라고 생각합니다. (뭔가 있어보이는...ㅋㅋ)


오늘 실습은 기초강좌 9강에서 작성했던 스크립트를 이용해서 진행하겠습니다.


우선 9강에서 작성했던 스크립트를 보여드리겠습니다.



위 그림에서 볼 수 있듯이 7개의 Text와 1개의 Edit, 1개의 ComboBox, 2개의 Button으로 Gui를 구성했습니다.

이들 중 설정에 관련된 부분인 반복횟수와 2번이미지클릭, 클릭안함과 함께 시작버튼을 비활성화 시키도록 하겠습니다. 이렇게 하는 이유는 시작버튼을 누른뒤에 설정을 수정할 수 없도록 하는 것과 시작버튼을 중복해서 누르는 것을 방지하기 위해서 입니다.


먼저 시작버튼에 변수를 할당하셔야 합니다. 다음과 같이 수정하세요.

Gui, Add, Button, x20 y180 w50 h30 v시작버튼, 시작


시작버튼의 중괄호 내부에 아래와 같이 코드를 추가하세요.



명령어 부분에 비활성화를 의미하는 "Disable"을 적었고 세번째 항에 Gui각각에 해당하는 변수의 이름을 적었습니다. 4번째 항에는 아무것도 적지 않았습니다. "Disable"명령어는 마지막 내용부분을 반드시 공백으로 해놓아야 합니다.


이렇게 해서 설정에 사용되는 요소와 시작버튼을 아래와 같이 비활성화 시켰습니다.



여기서 한가지 응용이 필요합니다. 

"시작버튼을 눌렀을 때 비활성화가 된 것들을 "F2"를 눌러 멈추거나 종료시켰을 때 다시 활성화가 되어야 한다"는 생각이 드셨나요?

이 생각을 하신분은 이제 어느정도 응용이 가능한 분입니다. 생각만 할 수 있다면 구현은 어떻게 하는지 찾아보면 다 나오기 때문이죠^^


그럼 이어서 아래와 같이 스크립트를 수정하세요.



비활성화 된 Gui들을 활성화시키는 위치는 프로그램이 멈출 때가 가장 적절하며 시작버튼 중괄호 내부의 가장 마지막 줄에 추가하면 시작버튼을 눌러서 실행되는 While을 탈출했을 때만 실행되기 때문에 위 사항을 만족시킬 수 있습니다. 

활성화 시키는 방법은 "Disable"대신에 "Enable"을 적어주시면 됩니다. "Enable"명령어는 Gui를 활성화 시키는 명령어입니다.


3-2) Text 내용변경


Text의 내용을 변경하고 싶을 때에는 아래와 같은 방법으로 사용하시면 됩니다.


 GuiControl, , Text에 할당된 변수이름, 내용 


내용 부분에 지난강좌에서 배웠듯이 변수를 사용하고 싶을 때는 %변수이름%을 넣으시면 됩니다.

제가 기초강좌에서 GuiControl을 이용해 Text를 변경할 때 Gui, Submit을 위에다가 적으시라고 했었는데 단순히 Text의 내용만 변경시키실 때에는 안적으셔도 상관 없습니다.


3-3) Edit 내용변경


Edit의 내용을 변경하고 싶을 때에는 아래와 같은 방법으로 사용하시면 됩니다.


 GuiControl, , Edit에 할당된 변수이름, 내용 

 Gui, Submit, nohide 


Edit의 경우 Text를 변경할 때와 같은 방법으로 사용하시면 됩니다.

하지만 Text는 단순히 내용표시만 하지만 Edit은 입력된 값을 받아와서 사용하는 것이기 때문에 반드시 아래에 "Gui, Submit, nohide"를 적어주셔야 합니다. 


를 들어 Edit에 "0"이 적혀있었는데 프로그램상에서 "GuiControl, , Edit, 1"이라고 적고 아래줄을 적지 않으면 Edit에 표시되는 값은 "1"이지만 Edit에 할당된 변수에 들어있는 값은 "0"입니다. 이 값을 업데이트 해 주는 것이 "Gui, Submit, nohide"부분이기 때문에 반드시 함께 적어주셔야 합니다.


3-4) Gui 이동


Gui의 위치를 바꾸는 방법은 아래와 같습니다.


 GuiControl, Move, Gui에 할당된 변수, 좌표와 크기 (예. x10 y20 w200 h100)


모든 Gui는 "Move"명령어로 위치를 옮길 수 있습니다. 마지막 항에는 처음 Gui를 만들때 좌표와 크기를 지정해준 것과 같은 방법으로 적어주시면 됩니다.



이렇게 해서 오늘의 강좌가 모두 끝났습니다. 

GuiControl의 기능 중에 매크로 제작에 필요하다고 생각되는 부분만 다뤘기 때문에 조금 부족할 수도 있을 것이라고 생각합니다. 모든 강좌가 끝나면 더 심도 있는 강좌를 진행할 예정이니 기다리셔도 되고 급하신 분은 댓글로 질문해주시면 될 것 같습니다.


기초강좌에서 "기초강좌의 내용만 알아도 어떤 매크로든 만들 수 있다"라고 말씀드린 것 기억하실 지 모르겠습니다.

기초강좌를 통해서 매크로를 만들기위한 기본 틀을 모두 알려드렸으며, "오토핫키 붙여넣기"에서 다루는 내용들은 

프로그램을 고급지게 만드는 "옵션"이라고 말할 수 있을 것 같습니다.


강좌를 보시다가 궁금하신 부분은 언제든지 해당 강좌에 댓글로 질문 주시면 성의껏 답변 달아드리겠습니다.


반복학습만이 살길이라는 말씀을 드리면서 붙여넣기 두번째 강좌를 마치겠습니다.

블로그 이미지

킴영감

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

,