티스토리 뷰

#Chapter.11 ,오토핫키 비활성 클릭(PostMessage)

시작합니다.


지금부터 배우실 오토핫키 명령어는 비활성 입니다. 시작하기 앞서 비활성에 대해서  간단하게 설명 드리겠습니다.


지금 제 포스팅을 보고 계시다면 활성화된 창은 인터넷 창입니다. 지금까지 배웠던 이미지서치나 Send 방식 클릭으로는 활성화된 창이외엔 서칭 혹은 클릭할 수 없었죠. 활성된 창에서만 작동하는 매크로는 비효율적입니다. 컴퓨터로 다른 작업을 하기 어렵기 때문이죠. 녹스창을 구석으로 옮겨 놓고 다른 한쪽구석에서 동영상 정도는 볼 수 있겠죠. 하지만 비활성 명령어에 익숙해지고 사용이 가능해지면 활성화된 창이 아니더라도 이미지를 찾고 클릭을 하고 동작할 수 있게됩니다. 


이전 챕터에서 만들었던 매크로를 실행해 보셨다면 아시겠지만 마우스가 이리저리 움직이죠

매크로 동작에 방해가 될만큼 마우스이동을 계속해서 하고 있으면 매크로도 동작이 안되곤 합니다.

그래서 비활성으로 만들어서 좀더 완벽한 매크로로 만들어 보겠습니다.


#주의 비활성이 '최소화'를 말하는 것은 아닙니다. 최소화가 아닌 예를들어 지금 보고계시는 인터넷창 뒤에 녹스플레이어가 작동 되고 있다면 매크로가 동작한다는 의미입니다. 또한, 전체화면 모드가 실행되면 동장이 안되는 것 같습니다. 다른걸로 확인을 해보진 않았는데 녹스를 켜놓고 전체화면 게임을 하면 이미지서칭을 하지 못하더군요.


그럼 비활성 클릭 PostMessage부터 시작하겠습니다. 다른 명령어도 존재합니다만 제가 사용해본결과 저랑은 이게 잘 맞더군요.


일단 목적은 녹스 플레이어를 통한 테라M 매크로 만들기 입니다. 녹스창을 켜주시고 테라 아이콘의 좌표를 Active Window Info (Window Spy)을 이용해서 찾아보겠습니다.



녹스플레이를 한번 클릭해주면 활성화가 되죠 그상태에서 테라M에 마우스를 올리시면 Active Window Info (Window Spy)의 Mouse Position: 에서 Relative 값을 확인해주시면 됩니다.

제가 구한 값은 x519, y249 입니다. 


그럼 스크립트 보시겠습니다.


gui,show,w100 h100 center,chapter11

gui,Add,Button,x0 y0 w100 h50 gStart,Start

gui,Add,Button,x0 y50 w100 h50 gStop,Stop

return

#이정도 gui는 계속 보여 드렸던 어렵지 않은 gui이니 설명안드리겠습니다.


Start:

CLickX:=519

#Active Window Info (Window Spy)로 찾은 x값입니다.

ClickY:=249

#Active Window Info (Window Spy)로 찾은 y값입니다.

lparam:=CLickX|ClickY<<16

#ClickX  | ClickY << 16 은 PostMessage는 좌표값을 16진수로 받습니다. 좌표값을 16진주로 바꾼다 로 생각하시면 됩니다. ' | '는 Shift+\ 키입니다. '역슬래시' 라고 합니다.


PostMessage,0x201,1,%lparam%,,녹스 플레이어

#PostMessage 는 실행 명령어(마우스 클릭은 0x201),wparam(클릭은 그냥 1이다 생각하세요.),lparam(좌표값을 16진수 화한것),(여기는 실행칸? 정도로 생각하시면되는데 녹스는 없습니다. 비우시면 됩니다.),실행 창 이름(녹스 플레이어)

PostMessage,0x202,0,%lparam%,,녹스 플레이어

#위와 마찬가지로 마우스를 클릭을 땝니다.(0x202),0,

Sleep, 1000

return



Stop:

ExitApp

return


GuiClose:

ExitApp

return


Chapter_11.txt

#파일 올려드립니다.



보시면 이전에 배웠던 Send 방식 Click 과는 다르게 해당좌표를 가려도 클릭이 가능합니다. 

실행하실때 더큰 인터넷 창이나 다른 창으로 가리고 해보세요.


다음시간엔 gdip, gdip_imagesearch 를 활용한 비활성 이미지서치를 알아보겠습니다. 


댓글