모바게님 이미지 서치 함수를 활용해서 지니모션용 비활성 매크로를 만들어보려고 하는데요.
일반적인 imagesearch 를 사용하면 이미지를 잘 찾아서 클릭하는데,?
모바게님 함수(imageSearcher) 를 이용하면 클릭을 못하고 헤메더군요.?
무슨 이유일까요?
혹시 ActiveID 가 잘못된걸까요??
아래는 소스입니다.
고수분들의 답변을 기다립니다. ㅜㅜ
#NoEnv ; 변수명이 환경변수인지 체크하는걸 무시, 스크립트 속도 상승과 환경변수 혼동으로 인한 버그 방지
coordmode, pixel, screen
SetDefaultMouseSpeed, 0
SetWorkingDir %A_ScriptDir%
ActiveID:=Genymotion for personal use - T-900S-1.5
; ================================ 본문시작 =========================================
[:: ;start
main:
if(imageSearcher(x,y, "실행아이콘.bmp")=1)
{
sendClick(x,y)
msgbox, 찾았다. 요놈!
}
else?
{
msgbox, 이미지가 안보여요.
}
]::pause
\::reload
; =============================== 함수선언 ==========================================
;이미지 서치
imageSearcher( ByRef imgX, ByRef imgY, img)?
{
? ? global ActiveID
? ? WinGetPos, winX, winY, winW, winH, %ActiveID%
? ? ImageSearch, oX, oY, winX, winY, winX+winW, winY+winH, *50 %A_ScriptDir%\%img%
? ? If ( ErrorLevel = 0)
? ? {
? ? ? ? imgX := oX
? ? ? ? imgY := oY
? ? ? ? return 1
? ? }
? ? else If ( ErrorLevel = 1){
? ? ? ? return 0
? ? }
}
;클릭
sendClick( x, y) {
? ? global ActiveID
? ? WinGetPos, winX, winY, winW, winH, %ActiveID%
? ? SysGet, capH, 4 ; 캡션Height
? ? SysGet, bordW, 32 ; 보더Width
? ? SysGet, bordH, 33 ; 보더Height
? ? px:=x-winX-bordW
? ? py:=y-winY-bordH-capH
? ? p := px|py<<16
? ? PostMessage, 0x201, 0, %p%, , %ActiveID%
? ? PostMessage, 0x202, 0, %p%, , %ActiveID%
? ? Sleep, 200
? ? Return
}
sendClick2( x, y)?
{
? ? global ActiveID
? ? SysGet, capH, 4 ; 캡션Height
? ? SysGet, bordW, 32 ; 보더Width
? ? SysGet, bordH, 33 ; 보더Height
? ? px:=x-bordW/2
? ? py:=y-bordH/2-capH
? ? p := px|py<<16
? ? PostMessage, 0x201, 0, %p%, , %ActiveID%
? ? PostMessage, 0x202, 0, %p%, , %ActiveID%
? ? Sleep, 200
? ? Return
}
;서치앤클릭
imageSearchClick(img)?
{
? ? If imageSearcher( x, y, img) = 1?
? ? {
? ? ? ? sendClick( x, y)
? ? ? ? Return 1
? ? }
? ? Return 0
}
;이미지 찾을때까지 대기
waitImage(img) {
? ? Loop {
? ? ? ? If imageSearcher( x, y, img) = 1?
? ? ? ? {
? ? ? ? ? ? Break
? ? ? ? }
? ? ? ? Sleep, 500
? ? }
? ? Sleep, 200
? ? Return
}
;이미지 찾을때까지 대기후 클릭
waitImageClick(img) {
? ? Loop {
? ? ? ? If imageSearchClick( img) = 1
? ? ? ? {
? ? ? ? ? ? Break
? ? ? ? }
? ? ? ? Sleep, 500
? ? }
? ? Sleep, 200
? ? Return
}
ActiveID:= "Genymotion for personal use - T-900S-1.5"
이부분부터 수정해보세요.