매크로

조회 수 249 추천 0 댓글 3

셋쇼마루님 소스 감사합니다


근데 Gdip 로 이미지 찾을때까지 대기후 클릭하게 하는 함수는 없을까요...


#Singleinstance Force

#Include Gdip.ahk

SetBatchLines, -1

SetWorkingDir, %A_WorkingDir%


pis(Title, ImgFileName, ByRef Pos_X, ByRef Pos_Y, DebugMode=false)

{

If !pToken := Gdip_Startup()

{

MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system

ExitApp

}


pBitmapHayStack := Gdip_BitmapFromHWND(hwnd := WinExist(Title)) 

pBitmapNeedle := Gdip_CreateBitmapFromFile(ImgFileName)


Width1 := Gdip_GetImageWidth(pBitmapHayStack), Height1 := Gdip_GetImageHeight(pBitmapHayStack)

Width2 := Gdip_GetImageWidth(pBitmapNeedle), Height2 := Gdip_GetImageHeight(pBitmapNeedle)

E1 := Gdip_LockBits(pBitmapHayStack, 0, 0, Width1, Height1, Stride1, Scan01,BitmapData1)

E2 := Gdip_LockBits(pBitmapNeedle, 0, 0, Width2, Height2, Stride2, Scan02,BitmapData2)


MCode(Gdip_ImageSearch, "83EC148B4424309983E20303C28BC88B442434995383E2035503C2C1F80256C1F902837C24"

. "30005789442420C7442410000000000F8EBE0000008B5C24288B7C24388D048D00000000894424188B442430895C241CE"

. "B098DA424000000008BFFC74424440000000085C07E6D895C24148B6C242CC7442440000000008D6424008B4C24403B4C"

. "243C0F8D8600000033C985FF7E158BD58BF38B063B02751F4183C20483C6043BCF7CEF8B442420035C2418FF44244003C"

. "003C003E8EBC38B4C24448B5C24148B4424304183C3043BC8894C2444895C24147C978B4C24108B5C241C035C2418413B"

. "4C2434894C2410895C241C0F8C68FFFFFF8B5424488B44244C5F5E5DC702FFFFFFFFC700FFFFFFFF5B83C414C38B4C244"

. "48B5424488B44244C5F495E890A8B4C24085D89085B83C414C3")


Time1 := A_TickCount

VarSetCapacity(x, 8, 0), VarSetCapacity(y, 8, 0)

Loop, 100

DllCall(&Gdip_ImageSearch, "uint", Scan01, "uint", Scan02, "int", Width1, "int", Height1, "int", Width2, "int", Height2, "int", Stride1, "int", Stride2, "int*", x, "int*", y)

Pos_X := X, Pos_Y := Y

if (DebugMode = true)

MsgBox, % "Time for 100 searches: " A_TickCount-Time1 "ms`nx: " x "`ny: " y ; 디버깅용

Gdip_UnlockBits(pBitmapHayStack,BitmapData1), Gdip_UnlockBits(pBitmapNeedle,BitmapData2)

Gdip_DisposeImage(pBitmapHayStack), Gdip_DisposeImage(pBitmapNeedle)

return

}


MCode(ByRef code, hex)

{

VarSetCapacity(code, StrLen(hex)//2)

Loop % StrLen(hex)//2 ;%

NumPut("0x" SubStr(hex, 2*A_Index-1, 2), code, A_Index-1, "char")

}



;;;;;;;;;;Gdip 이미지서치 함수▲


Click(x, y)

{

Ukano := x | y<<16

WinGet, ActiveID, ID, BlueStacks App Player

PostMessage, 0x201, 0, %Ukano%,, ahk_id %ActiveID%

PostMessage, 0x202, 0, %Ukano%,, ahk_id %ActiveID%

}


;;;;;;;;;; 비활성클릭 함수 ▲


여기서 함수 안쓰고 일일이 루프씌우면 지저분해질거 같은데 


이미지 찾을때까지 대기후 클릭 함수 좀 도움말 주실분요...ㅠ


  • 모닝커피 2016.07.03 04:44

    루프말고 다른 방법이 있나여....?

    루프를 어디에 어떻게 씌우느냐를 고민하셔야 될거 같은데여

  • 총각미남 2016.07.03 09:10

    네 루프씌우는데 외치기님께서 올려주신 이미지서치따라해봤는데 안되서요 ㅠㅠ



  • 단백질 2016.07.08 13:26

    미뮤 사용자라서 adb와 gdip 같이쓰는데

    아래와같이 사용중입니다.

    2번째 명령어같이 루프로 묶으시면 될듯 싶네요




    이미지서치(ByRef ClickX, ByRef ClickY, Image, errorRange, trans, sX = 0, sY = 0, eX = 0, eY = 0)

    {

    RunWait,%comspec% /c "%A_scriptDir%\라이브러리\adb.exe" -s 127.0.0.1:21503 shell screencap -p /sdcard/bg.png,,hide

    RunWait,%comspec% /c "%A_scriptDir%\라이브러리\adb.exe" -s 127.0.0.1:21503 pull /sdcard/bg.png,,hide

    WinGet, Title, ID, ahk_class Qt5QWindowIcon

    If(Gdip_ImageSearchWithHwnd(Title, ClickX, ClickY, Image, errorRange, trans, sX, sY, eX, eY))

    {

    FileDelete, %A_scriptDir%\bg.png

    sleep 1000

    return true

    }

    }


    이미지발견대기(ByRef clickX, ByRef clickY, ImageName, errorRange, trans, sX = 0, sY = 0, eX = 0, eY = 0)

    {

    Loop

    {

    if(이미지서치(clickX, clickY, ImageName, errorRange, trans, sX, sY, eX, eY))

    {

    return true

    }

    sleep 200

    }

    }


    Gdip_ImageSearchWithHwnd(Hwnd,Byref X,Byref Y,Image,Variation=0,Trans="",sX = 0,sY = 0,eX = 0,eY = 0)

    {

    SysGet, wFrame, 7

    SysGet, wCaption, 6

    gdipToken := Gdip_Startup()

    bmpHaystack := Gdip_CreateBitmapFromFile("bg.png")

    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


    ;~ msgbox, %bmpHaystack%||%bmpNeedle%||%RET%

    ;~ GuiControl,,로그, %bmpHaystack%||%bmpNeedle%||%RET%

    if(RET = 1)

    {

    return true

    }

    else

    {

    return false

    }

    }


List of Articles
분류 제목 글쓴이 최근변경 추천
질문 gdip 비활성서치 질문드립니다. 3 영창이염 2016.07.04 0/0
질문 gdip 비활성 이미지서치와 일반 이미지서치 속도 차이... 1 마이충의분노 2018.02.15 0/0
질문 GDIP 비활성 이미지서치 질문드립니다 3 양파형 2020.07.13 0/0
질문 gdip 비활성 이미지 서치시 깜빡거림 1 러츄아애러 2018.09.17 0/0
정보 gdip 비활성 이미지 서치, postmessage 모모 소스입니다. 6 사이다업 2021.01.23 1/0
질문 gdip 비활성 앱플레이어멀티로 사용시에 타이틀만 바꿔... 3 hiki 2017.09.23 0/0
질문 Gdip 비활성 사용시 무차별적으로 터치를 합니다. 인식... 1 명랑택시 2019.03.04 0/0
질문 gdip 비활성 매크로에 if errorlevel 못쓰나요? 3 비구니 2018.05.11 0/0
질문 gdip 범위지정서치 질문합니다. 8 N4N2 2017.09.07 0/0
질문 gdip 명령어에서 출력 변수를 사용하고 싶습니다 7 나나치얌 2017.11.15 0/0
질문 gdip 를 이용한 캡쳐 질문있습니다. 4 까망갈매기 2018.07.24 0/0
질문 Gdip 로 이미지 대기후 클릭함수 질문요 3 총각미남 2016.07.08 0/0
질문 gdip 로 trans 기능 하는게 없나요? 3 리키레이 2016.01.17 0/0
질문 GDIP 라이브러리중 Gdip_BitmapFromHwnd에 대하여 질문... 3 반수현 2023.02.24 0/0
질문 gdip 다중 이미지서치에 관해서 여쭤봅니다 a1237694 2023.02.24 0/0
질문 gdip 관련하여 질문합니다. 3 N4N2 2016.04.16 0/0
질문 Gdip 관련 질문있습니다 고수님들 3 메이크모델 2022.11.24 0/0
질문 Gdip 경로 도움좀 주세요 형님들..... 2 능금마라탕 2020.12.30 0/0
정보 gdip 간단 응용 팁들 13 매크로맨서 2015.04.18 0/0
질문 GDIP trans 기능 예제 힌트좀 주실수있으신가요? 35 캔디염 2016.09.18 0/0
Board Pagination Prev 1 ... 192193194195196197198199200 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글