본문 바로가기

연재/오토핫키

[오토핫키] 단축키를 눌렀을 때 클릭반복 시키는 매크로


오토핫키 다운로드 및 설치 후

단축키를 눌렀을 때 클릭반복 시키는 매크로 만들기


  오토핫키는 준 프로그래밍 스트립트 언어입니다. 언제나 통용되는 말이지만, 쉽게 매크로를 만들려고 하면 절대 복잡한 매크로를 만들 수 없습니다. 좀 어렵더라도 오토핫키 하나만 제대로 익히시면 앞으로 있어서 매크로를 만드는 데 부족함을 느끼실 리는 절대 없다고 장담합니다.

  오토핫키 매크로에 관련된 글을 벌써 3개나 올렸었는데요,



  의외로 간단한 내용에서 질문을 하시는 분들이 계셔서, 클릭반복 매크로를 예로 들어서 가장 단순한 클릭매크로를 어떤 식으로 짤 수 있는지에 대해서 좀 더 깊게 다뤄보겠습니다.




1. 오토핫키 다운로드 및 설치



http://www.autohotkey.com/ 에서 Download를 눌러줍니다.



속편하게 Installer로 까시는게 제일 편합니다.




여기서 Yes를 눌러서 바로 작성해보도록 합시다.



  G매크로나 매크로 익스프레스 같은 다른 매크로들을 다운로드 받아 쓰셨었다면 이런 스크립트 형식의 매크로가 익숙하지 않으실텐데요, 전혀 어렵지 않습니다. 오히려 자유도가 보장된다는 크나큰 장점이 있죠. 메모장으로 작성하고 실행을 시키는 방법은.. 오른쪽 하단부 시스템 트레이에 보시면 H라고 써져있는 것이 보이실 겁니다.




  여기 나오는 것들은 다 중요합니다. 메모장이 꺼졌을 때는 Edit This Script를 누르면 다시 띄울 수 있구요, 메모장으로 편집하고나서 적용할 때에는 Reload This Script를 누르면 됩니다. 매크로를 중단시킬 때는 Pause Script를 누르시면 되구요.


  클릭 매크로를 만드려면 도대체 어딜 클릭해야 할지 알아야겠죠? 이를 하기 위해서 필요한 것이 Window Spy입니다. 위 메뉴에서 Window Spy를 눌러봅시다.



  그리고 마우스를 이리저리 움직이면 빨간색 테두리가 된 좌표가 옮겨지는 것을 볼 수 있습니다. 이 좌표가 바로 필요한 정보가 되는 것이죠. 한번 다음과 같은 메뉴를 클릭하는 매크로를 만들어봅시다.



  F5키를 눌러지게 해도 되지만, 실습을 위해 메모장의 시간/날짜 메뉴를 눌러서 시간/날짜를 출력하게 만드는 매크로를 만들어봅시다. 우선 좌표를 Window Spy를 통해 구하면 (오토핫키 메뉴에서 Window Spy를 눌러 실행시킨 후 마우스를 움직여 좌표를 구합니다)


1) 편집(E) 좌표 : 87, 37

2) 시간/날짜(D) 좌표 : 146, 302


라고 구해집니다. 그러면 1)번 좌표를 누르도록 한 뒤, 2)번 좌표를 눌러지게 하면 실행이 될 것입니다. 한번 코드로 나타내볼까요?


	
MouseClick, left, 87, 37
sleep, 100
MouseClick, left, 146, 302
sleep, 100 
	



  위와 같이 쓰일 것입니다. Sleep는 뒤에 나오는 숫자의 해당 밀리초 만큼 쉬는 겁니다. 1초동안 쉬게 하고 싶으면 1000이 됩니다.

  다만 이렇게만 쓰면 매크로를 실행하자마자 작동돼 버립니다. 이를 방지하기 위해 특정 단축키를 눌렀을 때 실행되게 해야 할 필요가 있는거죠. 단축키를 연동하기 위해서는 단축키 뒤에 ::를 붙이면 됩니다. Ctrl을 연동되게 하려면 ^, Alt는 !, Shift는 +가 됩니다. 한번 위에 작성한 스크립트에 Ctrl+Alt+Shift+T의 단축키를 적용하려면 아래와 같이 됩니다.


	
^!+t::
MouseClick, left, 87, 37
sleep, 100
MouseClick, left, 146, 302
sleep, 100 
	




  이제 다 끝났습니다. 스크립트 언어이니 작성한 뒤에 저장해야된다는 것 잊지 마세요. 저장한 뒤에, 


 Reload This Script를 다시 눌러줘야 합니다. 스크립트가 수정됐으면 다시 열어줘야 하겠죠. 이래 놓고 이제 메모장 위에서 Ctrl+Alt+Shift+T를 눌러봅시다. 그러면 빠른속도로 메뉴를 누르는 모습이 보이고 아래처럼 시간이 들어갑니다.




 자 그런데 이정도로는 매크로의 의미가 없죠. 그냥 클릭하는게 나을 정도죠. 한번 그러면 100번 반복하게 해 봅시다. 매크로의 강력함은 반복에서 나오죠. 코드를 별로 수정할 필요도 없이 아래처럼 하면 됩니다.

	
^!+t::
loop, 100{
  MouseClick, left, 87, 37
  sleep, 100
  MouseClick, left, 146, 302
  sleep, 100
} 
	

  저장한 뒤 Reload Script 눌러주는거 까먹지 마시고요, 한번 실행해봅시다.



  실행시키시면 마우스가 정신없이 클릭하는 모습이 보일겁니다. 문제점은 중간에 멈출 마땅한 방도가 없다는 것인데.. 이 점의 해결책에 대해서는 다음 연재 때 알아보도록 하겠습니다. 사실 오늘 배우신 내용에 키보드 단축키를 쓰는 법까지 하면 어느정도는 쓰실 수 있는 것입니다. 따라오시느라 수고하셨습니다. 마지막에 다시 강조말씀 드리지만 오토핫키의 강력함은 배우기 어렵더라도 정교한 매크로의 작성이 가능하다는 겁니다. 배우시면 게임매크로 등지에서도 활용할 수 있으니 절대 후회 안하실 겁니다 ^^; 가령 이미지서치로 아이템을 자동으로 먹게 하기라든가.. 매크로방지 회피 이런 것도 가능하니까요.