티스토리 뷰

#Chapter.12 ,비활성 이미지 서치

시작합니다.


테라M 매크로 만들기


이번 시간에는 비활성 이미지 서치 입니다. 비활성 이미지를 서치 하려면 라이브러리를 등록을 해야합니다. 오토핫키 공식 홈페이지에서 공유되는 라이브러리 입니다.

사이트 접속하셔서 드래그래서 ahk파일로 저장하셔도 되고 구글링 통해서 다운받으셔도 됩니다.


일단 라이브러리 올려드릴게요.

Gdip.ahk

Gdip_ImageSearch.ahk

#링크 클릭하셔서 받아주세요.


챕터를 시작할때 오토핫키 설치 방법 설명 드리면서 말씀을 드렸었는데요

이 라이브러리를 실행 시키시려면 조건이 필요한데요. 오토핫키를 32비트로 설치하셔야 합니다.

윈도우7 이라고 64비트 설치하신 분들 많으실텐데 32비트로 설치하셔도 동작 잘됩니다.

Gdip.ahk가 32비트 환경에서 작동되게 되어있어요. 64비트로 된 라이브러리도 있다고 하니 구글링 통해서 받으셔도 될겁니다 (저는 있는걸 본적은 있는데 써보진 않았어요)

만약 64비트로 설치되어 있으시다면 32비트로 다시 설치하시는걸 추천드립니다.


그리고 제가 구글링 하면서 알게된 스크립트 조금 수정해서 ahk하나 만들었는데요. 이걸통해서 좀더 쉽게

비활성 이미지 서치를 해볼까 합니다.

일단 제가 만든 ahk 올려드리겠습니다.


Search_img.ahk


일단 이렇게 3가지 라이브러리를 받아주시면 지난 챕터에 이미지 서치를 했듯이 비슷한 방법으로 쉽게 스크립트 짜실 수 있습니다.


이번 시간해에 해볼 스크립트 실행 영상부터 보여드릴게요.



보시면 제가 다른 창으로 녹스 플레이어를 가리고 실행했을때 찾는걸 보실 수 있는데요.


스크립트를 보시기전에 준비해야될 이미지가 있습니다.

제가 가지고 있는 이미지도 올려드릴게요, 적용이 될 것 같은데 안되시면 직접 이미지 잘라서 만들어주세요.


#저기 빨간 네모로 표시해둔 이미지를 캡쳐해주시면되는데요. 이미지 이름은 Tera.bmp

24비트맵 이미지 입니다.


Tera.zip

#이미지 파일입니다.


이미지를 캡쳐하고 잘라서 만드실 때 중요한게 이미지의 좌측 상단 위치인데요, 이미지를 서치할때

찾을 이미지의 좌측 상단 좌표값이 반환되는데, 그좌표를 그대로 활용하려면 마우스를 클릭할 위치에 맞게 이미지를 잘라주시는게 좋아요.


그럼 스크립트 보실게요.

Chapter_12.txt

#위 링크 누르시면 스크립트 다운 됩니다.


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 설명은 넘어갑니다.


#Include Gdip.ahk

#Include Gdip_ImageSearch.ahk

#Include Search_img.ahk

#다운 해주신 3가지 ahk를 Include 해주셔야 사용가능합니다.


Start:

WinGet,Nox,ID,녹스 플레이어

#WinGet명령어로, Nox라는 변수에, ID값(윈도우에서 실행되는 창들은 각각의 ID값이 있습니다.)을 저장합니다, 녹스 플레이어의 ID를 

#대충 말씀드리면 Nox라는 변수에 '녹스 플레이어'가 실행되고 있는 창의 고유 ID값을 저장하겠다 정도가 되겠네요.


if(Search_img("Tera.bmp",Nox,x,y)){

#제가 드린 Search_img.ahk 라이브러리 안에 있는 함수인데요, 파라미터() 값은 ("이미지 풀네임",ID,찾은 이미지의 

x값을 저장할 변수 이름, 찾은 이미지의 y값을 저장할 변수이름) 입니다. 그리고 boolean값을 return합니다.

#if를 실행하는데 조건은 Search_img()이고 찾을 이미지는 "Tera.bmp",ID값은 위에서 WinGet을 통해 얻은 아이디값 Nox,찾을 이미지의 x좌표, y좌표 입니다.

#쓰시다보면 익숙 해지실거에요. 이미지를 찾으면 true를 반환하고, 못찾으면 false를 반환합니다.

MsgBox, success!! x=%x% y=%y%

#이미지를 찾으면 x값과 y값을 MsgBox로 보여줍니다.

}

return


Stop:

ExitApp

return


GuiClose:

ExitApp

return


지난 챕터를 보셨다면 아시겠지만 쓰는 방법이 좀 비슷한 것 같지 않나요?

최대한 쉽게 설명하려 했는데 제가 생각해도 처음보시는 분들은 많이 어려울 것 같네요.

일단 대충 쓰는 법만 알겠으면 써보세요 쓰다보면 알 수 있습니다. 


그리고 Gdip 라이브러리와 제가 올린 ahk 안 함수들 설명은 다음에 좀더 자세하게 설명할 수 있는 기회가 생기면 알려드리겠습니다. 일단은 저렇게 사용하시면 기존에 이미지 서치와 흡사 하니 쓰시기 편할 겁니다.


다음 Chapter에서는 비활성으로 이미지를 찾아서 클릭하는 방법에 대해 알아보겠습니다.







  

댓글