넷게임

비활성 매크로 시작시 창클릭해줘야 인식하는 부분 본문

카테고리 없음

비활성 매크로 시작시 창클릭해줘야 인식하는 부분

시스이 2020. 5. 1. 14:11
#Include, Gdip_all.ahk
#Include, Gdip_ImageSearch.ahk

WinGet, out, list, ahk_class LDPlayerMainFrame
Loop, % out
{
_hwnd := out%A_Index%
wingettitle, title, ahk_id %_hwnd% 
list=%list%%title%|
}

Gui, Add, DropDownList, x75 y10 w85 Choose1 v타이틀, %list%

;핸들은 이렇게 잡아서 쓰고있구요..

;비활성클릭
PostClick(FoundX,FoundY)
{
lparam:=FoundX|FoundY-35<<16 ;타이틀 두께뺌
PostMessage, 0x201, 1, %lparam%, TheRender, %타이틀%
PostMessage, 0x202, 0, %lparam%, TheRender, %타이틀%
Sleep, 1000
}
return

;비활성이미지
WinGet, Nox, ID, %타이틀%
if(Search_img("Image\a03\완료.bmp",Nox,x,y,230,150,500,300,50,0x000000))
{
; 이런식 예제
}

search_img(image,hwnd, byref vx, byref vy, x1, y1, x2, y2, Variation, Trans)
{
pToken:=Gdip_Startup() 
pBitmapHayStack:=Gdip_BitmapFromhwnd(hwnd)
pBitmapNeedle:=Gdip_CreateBitmapFromFile(image) 

;Sleep, 1000
if Gdip_ImageSearch(pBitmapHayStack,pBitmapNeedle,list,(x1),(y1),(x2),(y2),(Variation),(Trans),1,1)
{
StringSplit, LISTArray, LIST, `,  
vx:=LISTArray1 
vy:=LISTArray2
Gdip_DisposeImage(pBitmapHayStack), Gdip_DisposeImage(pBitmapNeedle)
Gdip_Shutdown(pToken)
return true
}
else 
{
Gdip_DisposeImage(pBitmapHayStack), Gdip_DisposeImage(pBitmapNeedle)
Gdip_Shutdown(pToken)
return false
}
}

이렇게 비활성 제작해서 쓰고 있습니다..LD 멀티를 돌리는대요.

SciTE4 로 테스트 할때는 LD앱어느창을 핸들을 잡아도 잘인식하는데..

컴파일된 실행파일로 하면 ( 활성된창? ) 꼭 한번은 앱플레이어를 마우스 클릭 한번해줘야 인식을합니다..

원래 그런건지.. 핸들을 잘못 잡아서 그런건지요?

답글

Comments