#Singleinstance Force
#Include GdipRAW.ahk
Gui, Add, Text, x30 y5 w120 h20, Muria Macro
Gui, Add, Text, x60 y25 w500 h20 vstate, Ready!!
Gui, Add, Text, x60 y50 w500 h20 vsc, 0 회
Gui, Add, Text, x60 y75 w500 h20 vfc, 0 회
Gui, Add, Button, x20 y105 w110 h20, 시작
Gui, Add, Button, x20 y135 w110 h20, 종료
Gui, Show
매크로시작 := false
return
GuiClose:
{
매크로시작 := false
ExitApp
}
return
Button시작:
{
매크로시작 := true
While(매크로시작 = true)
{
If(IsImageCheck(ClickX, ClickY, "전투입장.bmp",60,0))
{
msgbox, 찾음
}
else
{
MsgBox, 못찾음
}
if(매크로시작 = false){
break
}
}
}
return
Button종료:
{
매크로시작 := false
}
return
; Gdip 이미지서치 함수
IsImageCheck(ByRef ClickX, ByRef ClickY, CKImage, errorRange, trans, sX = 0, sY = 0, eX = 0, eY = 0)
{
WinGet, Title, ID, BlueStacks App Player
MsgBox, %Title%
If(Gdip_ImageSearchWithHwnd(Title, ClickX, ClickY, CKImage, errorRange, trans, sX, sY, eX, eY))
{
return true
}
}
Gdip_ImageSearchWithHwnd(Hwnd,Byref X,Byref Y,Image,Variation=0,Trans="",sX = 0,sY = 0,eX = 0,eY = 0)
{
SysGet, wFrame, 7
SysGet, wCaption, 4
gdipToken := Gdip_Startup()
MsgBox, %Hwnd%, %bmpHaystack%
bmpHaystack := Gdip_BitmapFromHwnd(Hwnd)
MsgBox, %Hwnd%, %bmpHaystack%
bmpNeedle := Gdip_CreateBitmapFromFile(Image)
if( sX!= 0 || sY!= 0 || eX!= 0 || eY != 0)
{
sX := sX + wFrame
sY := sY + wCaption + wFrame
eX := eX + wFrame
eY := eY + wCaption + wFrame
}
RET := Gdip_ImageSearch(bmpHaystack,bmpNeedle,LIST,sX,sY,eX,eY,Variation,Trans,1,1)
Gdip_DisposeImage(bmpHaystack)
Gdip_DisposeImage(bmpNeedle)
Gdip_Shutdown(gdipToken)
StringSplit, LISTArray, LIST, `,
X := LISTArray1 - wFrame
Y := LISTArray2 - wCaption - wFrame
;GuiControl,,로그, %bmpHaystack%||%bmpNeedle%||%RET%
msgbox, %bmpHaystack%,%bmpNeedle%,%RET%
if(RET = 1)
{
return true
}
else
{
return false
}
}
====================================================
질문입니다..
블루스택을 종료해보면 Hwnd 값은 ""(공백)으로 찍히고..
블루스택을 시작해보면 Hwnd 값은 주소값이 들어갑니다.. (이러면 정상적으로 값을 넘겨준거 같은데...)
근데 정작 bmpHaystack 값은 0으로 찍히더라구요..ㅠㅠ
뭐가 문제인지 도통 모르겠네요 ㅠㅠ
이런문제있었을때 어떤방식으로 해결해봐야하나요.
===================================================
오토핫키를 다시 설치하였습니다. (기존 64비트에서 32비트로)
그랬더니 bmpHaystack 값이 찾아는 지는데 RET값이 0으로 return되네요.
RET가 0이라는 것은 이미지를 못찾았다는 뜻인가요?
해결글은 아니지만 저랑 비슷한 상황이라...혹시 해결 하시면 답글좀 부탁 드립니다