기타 팁

노가다는 이제 그만, AutoHotKey

MIRiyA☆ 2009. 2. 6. 04:10

최근 내가 손댄 카페중 한군데에 엄청난 노가다 수요가 생겼다.

카페의 등급제도를 개편하며 기존 7등급에서 9등급으로 늘렸기 때문이다.

이것에 맞추기 위해 특별회원은 모범회원으로 한단계 내리고, 정회원은 우등회원으로, 준회원은 정회원으로 등업을 해야했다. 특별회원에서 모범회원으로 강등하는 작업과 정회원을 우등회원으로 등업하는 작업은 어째어째 끝났다. 노가다를 하다보니 어느새 끝나있었던 것이다. 아마 오천명은 안넘었던것 같다. 다음의 카페관리 시스템을 이용하면 동시에 100명씩 등급 조정이 가능하다.


문제는 모든 준회원을 정회원으로 등업하는 과정이다. 아무리 생각해도 이건 엄청난 타임킬링이다. 회원수 10만명의 카페중 대략 90,000명이 준회원이라고 가정할때, 100명을 등업하는데 딜레이 15초가 걸린다. 한명당 0.15초가 걸리는 것이다. 이걸 90,000명에 대입하면 90,000명을 등업하는데는 모두 13,500초가 걸리고, 225분이 걸리며, 3시간 45분, 한숨 쉬는 시간까지 합치면 4시간이 꼬박 걸린다는 것이다. 9만명 등업에 4시간이다.


도저히 사람이 하기에는 큰 무리가 따르는 작업이라 나는 머리를 쓰기로 했다. 한 30분 삽질하면 4시간을 벌 수 있으니.. 원래 컴퓨터는 사람을 도와주기 위해 태어난거지 사람을 괴롭히거나 스피커나 마우스를 집어던지며 미치게 만들기 위해 태어난건 아니다. 컴퓨터 본연의 자세로 돌아가도록 주문을 걸어보련다. 내가 오늘 소개할 프로그램은 AutoHotKey라는 걸출한 프로그램이다. 이미 여러 커뮤니티에 널리 알려진 강력한 마우스 매크로/키보드 매크로/오토마우스 프로그램이라 할 수 있겠다.


아래는 이 프로그램을 이용해 틀어놓은 자동 노가다 작업이다. 자고 일어나 아침 7시 정도 되면 아마 작업을 마쳤을 것이다. 만약 중간에 꼬이지 않았다면...




보는바와 같이 속터지게 딜레이 15초다.





나는 위의 불필요한 학습을 줄이는, 숏컷을 좋아하기 때문에 일단 위의 작업을 완성하는데 필요한 테크닉만 살짝 알려주고 빠진다. 이정도만 알려주면 대부분 반복작업 노가다는 쉽게 처리할 수 있을것이다. 인간은 응용의 동물이므로.. 일단 프로그램부터 깔자. 해당 홈페이지는 여기다.


http://www.autohotkey.com/download/


일단 프로그램 깔면 우리가 만져볼 포인트는 2개다.


AutoScriptWriter (recorder)라는 프로그램과 Convert .ahk to .exe 이 프로그램이다.

제일 메인인 AutoHotKey는 사실상 거의 필요없다.




설명을 위한 예제로 그냥 탐색기 화면에 보이는 그림 4개를 순서대로 클릭하는 매크로를 만들어보자. 정말 별거 없다. 1.PNG를 클릭, 2.PNG를 클릭, 3.PNG를 클릭, 4.PNG를 원투쓰리포 원투쓰리포 반복하며 클릭하는 것이다. 이 정도 예제만 갖고도 위의 카페 등업 정도는 쉽게 만들 수 있다.


자. 실습을 위해 AutoScriptWriter (recorder)를 실행해보자.




진짜 없어보이는 프로그램이다. 위에 빨간 레코드 버튼, 그리고 밑에 Save 버튼만 누를것이다. 다른건 손대지 마라. 나도 뭐에 쓰는지 잘 모르고 매우 귀찮다. 당신들 역시 귀찮기는 마찬가지니 눈동자에 힘 빼고 똑같이 따라와라. 아까 탐색기 창을 잘 띄워놓은 상태에서 빨간 레코드 버튼을 클릭한다. 그럼 저 창이 슥 사라지고 기록이 시작된다.




왼쪽 위를 보면 (역시 없어보이는.. )스탑 버튼이 보일것이다. 이 상태에서 내가 아까 말한대로 탐색기의 그림 4개를 하나하나 원투쓰리포로 클릭하고 스탑 버튼을 누른다. 그럼 아래와 같은 화면이 보인다.




오. 뭔가 기록되었다. 대충 알아보자면..


MouseClick, left,  341,  192

이건 341x192 좌표에 마우스 왼쪽 클릭을 했다는 뜻이다.


Sleep, 100

100밀리초동안 멈췄다는 뜻이다.


이 두개만 알면 만사 ㅇㅋ


WinWait, 캐논코리아 블로그,
IfWinNotActive, 캐논코리아 블로그, , WinActivate, 캐논코리아 블로그,
WinWaitActive, 캐논코리아 블로그,

이 뭐라 뭉게뭉게 써놓은 부분은 만약 탐색기의 저 창이 활성화되어있지 않을 경우 활성화하라는 말인데, 이걸 지워버리면 참 난감해진다. 마우스 클릭 좌표를 프로그램 실행된곳 기준으로 잡기 때문이다.



WinWait, 캐논코리아 블로그,
IfWinNotActive, 캐논코리아 블로그, , WinActivate, 캐논코리아 블로그,
WinWaitActive, 캐논코리아 블로그,


MouseClick, left,  277,  139
Sleep, 100
MouseClick, left,  394,  143
Sleep, 100
MouseClick, left,  525,  146
Sleep, 100
MouseClick, left,  627,  146
Sleep, 100


창을 활성화시키고, 4군데에 마우스클릭을 한다는 뜻이다.

만약 저 중간에 Sleep 부분을 다 빼버리면 아마 광속으로 클릭을 할듯. Sleep 숫자를 올리면 그만큼 클릭 후 멈추는 시간이 길어진다.(Sleep 10000은 10초동안 멈추는거다. 고로 Sleep 100은 1/10초.)


근데 저 부분만 있으면 반복 노가다가 성립이 안된다. 저 소스를 아래와 같이 바꿔주자.

좀 무섭지만 직접 타이핑하던가, 긁어다 붙여라.



WinWait, 캐논코리아 블로그,
IfWinNotActive, 캐논코리아 블로그, , WinActivate, 캐논코리아 블로그,
WinWaitActive, 캐논코리아 블로그,


loop{

MouseClick, left,  277,  139
Sleep, 100
MouseClick, left,  394,  143
Sleep, 100
MouseClick, left,  525,  146
Sleep, 100
MouseClick, left,  627,  146
Sleep, 100

}
return

^x::exitapp


빨간색으로 표시한게 새로 추가한 부분이다.


loop{ 어쩌구 저쩌구 }return

이렇게 하면 저 안에 있는 부분을 무한반복한다. 따라서, 아까 실행했던 마우스 네번 클릭하는 동작이 계속 무한히 반복된다는 뜻이다.(특정 횟수만 반복하는건 나는 모르겠다.)


^x::exitapp

이렇게 하면 Ctrl+X를 누르면 무한 반복을 중지한다. 이 코드를 넣지 않으면 마우스를 휘두르며 애쓰다가 "이런 XX!" 하면서 컴퓨터 전원 버튼을 눌러야 하는 불상사가 벌어진다.


키 참조

^S : Ctrl + S

#S : Window + S

!S : Alt + S




WinWait, 캐논코리아 블로그,
IfWinNotActive, 캐논코리아 블로그, , WinActivate, 캐논코리아 블로그,
WinWaitActive, 캐논코리아 블로그,


MouseClick, left,  277,  139
Sleep, 100
MouseClick, left,  394,  143
Sleep, 100
MouseClick, left,  525,  146
Sleep, 100
MouseClick, left,  627,  146
Sleep, 100

^r::reload


이번에는 바꿔봤다. 이 상태에서는 무한 반복을 하지 않는다. 딱 한번만 원투쓰리포 클릭을 하고 멈추는데,


^r::reload

이 코드를 새로 추가했다. Ctrl+R을 누르면 동작을 다시 시작한다. 자기가 원하는 만큼 반복시킬때 아주 좋다.



자.. 아무튼 설명이 나와서 복잡해졌는데,



이 부분까지 만들었다. 이거대로 하면 1,2,3,4 클릭을 무한 반복하다가 Ctrl+X를 누르면 멈추는 것이다.

이제 왼쪽 아래의 Save 버튼을 클릭한다.




이렇게 대충 적어주고, 저장한다. 원투쓰리포무한반복.ahk 파일이 생성되었다.

근데 이것만 갖고는 아무것도 못한다. 아까 잠깐 말해놨던 Convert .ahk to .exe 프로그램을 켜자.




Source[script file] 부분의 Brouse 버튼을 눌러서 아까 저장한 원투쓰리포무한반복.ahk파일을 선택한다.




선택된 모습이다. 이제 맨 아래의 [>Convert<] 버튼을 클릭해준다. 다 만들어졌다 뜨고 아래와 같이 프로그램이 생성된다.




원투쓰리포무한반복.exe 이 파일을 실행시키면 아까 코드 짜놓은데로 네군데에 마우스클릭을 하는걸 무한히 반복할 것이다.



위는 실행 영상.


관련 정보를 더 알고싶으면 [AutoHotKey를 사용하는 사람들] 포럼을 참고하라.

오토마우스, 마우스매크로, 키보드매크로, 매크로마우스