매크로

질문
2016.02.15 13:00

Gdip로 비활성 찾는데요...

조회 수 435 추천 0 댓글 4

관련된 글들을 많이 보고 했는데..

성공은 했습니다.

하지만! 왜 이상하게 처음에 한번만 검색이 되고 두번째는 안될까요..?


### 문제점 ###

1. 네이버 아무곳을 스샷으로 찍어서 저장 (예 - 네이버.bmp)

2. 소스에 저장한 이름을 넣고 실행 후 찾는지 핫키로 실행하면 좌표가 뜹니다.

3. 다시 한번 더 검색을 하면 못찾는 메시지 발생..

4. 아까 찍은 스샷을 다른이름으로 저장 (예 - 네이버2.bmp)

5. 소스 이미지 이름 바꾼 후 실행 후 핫키 실행하면 다시 좌표검색 완료

6. 다시 한번 더 검색하면 못찾는 메시지 발생....


왜 이러는걸까요...ㅠㅠ


소스는 이걸로 사용했습니다.

#include Gdip.ahk

ImageSearch_Inactive(Title, ImgFileName)
{
 If !pToken := Gdip_Startup()
 {
  MsgBox, 48, gdiplus error!, Gdiplus failed to start. Please ensure you have gdiplus on your system
  ExitApp
 }
 OnExit, Exit

 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)
MsgBox, % "Time for 100 searches: " A_TickCount-Time1 "ms`nx: " x "`ny: " y ""
;x := " x "
;y := " y "
 ; Pos := x|y<<16
  ;          postmessage,0x201,1,%Pos%,,NAVER - Internet Explore
   ;       postmessage,0x202,0,%Pos%,,NAVER - Internet Explore
 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")
}

F9::

 ImageSearch_Inactive("NAVER - Pale Moon","네이버2.bmp")

return


F10::
Exit:
 Gdip_Shutdown(pToken)
 ExitApp
 return


  • 김귤님 2016.02.15 17:44

    뭘 검색해도 0,0이 나오는 이유는 뭘까요ㅜㅜ....

  • 핍하충 2016.02.16 01:47

    저도 지금 거기서 막혔네요 ㅋㅋ 다른분들보면 잘된다는분들도있는데 . ㅠ 뭐가잘못된건지..

  • 쉘든쿠퍼 2016.02.17 16:50


    https://raw.githubusercontent.com/MasterFocus/AutoHotkey/master/Functions/Gdip_ImageSearch/Gdip_ImageSearch.ahk


    이걸써서 해보세요. MCode 를 써서하는건 좀 불안정한 느낌이라서 저도 바꿨습니다

  • 제이아이에이 2016.07.19 11:50

    저도 그게 이상하네요 Gdip_CreateBitmapFromFile() 이 함수를 사용하면 그현상이 생겨요 ㅠㅠ


List of Articles
분류 제목 글쓴이 최근변경 추천
질문 비활성 클릭 질문합니다 6 꾸기 2017.09.25 0/0
질문 녹스 비활성드래그 PostMessage 로 가능한가요? 4 캔디염 2017.10.01 0/0
질문 gdip texttographic를 사용했는데요 9 포천아지 2017.09.26 0/0
질문 비활성 이미지서치는 어렵나요? 5 푸른호수 2017.09.26 0/0
질문 adb 관련해서 질문좀하겠습니다 3 캔디염 2019.03.05 0/0
질문 초보질문...작동이안되는데 원인을 잘모르겠씁니다.. 3 뿌히히히 2017.09.25 0/0
질문 시간카운트를 하려고 하는데(스톱워치처럼) 어떻게 해... 1 동생코코 2017.09.25 0/0
질문 피파 메크로 사용 하고 계신분 있으신가요? 내게오는길 2023.02.24 0/0
질문 gdip 이미지서치 질문입니다. 4 꾸기 2017.09.26 0/0
질문 프로세스 질문좀 하겠습니다~ 5 꾸기 2017.09.26 0/0
자유 조언주신분들 매우 감사드립니다 드디어 제가 원하는 ... 5 hiki 2017.10.01 0/0
질문 오토핫키 입문자입니다. 도움이필요합니다. 아무 움직... 8 불꽃앞점멸 2017.09.28 0/0
질문 2계정 돌리는거...고수님들 부탁드립니다...제발 2 영웅소천 2017.09.29 0/0
질문 mouseamount에 대한 설명글이 있을까요???? 3 포천아지 2017.09.28 0/0
질문 gui show에 나오는 창이름의 색깔도 바꿀수있나요? 3 더러럭배 2017.09.29 0/0
질문 case문을 오핫에서 어떻게 사용하는지 궁금하네요 5 꾸기 2017.09.29 0/0
질문 mousexy 에다가 자기가 원하는 변수를 넣을수있나요? ... 2 포천아지 2017.09.30 0/0
질문 gui 다른tab에있는 같은이름의 체크박스 인식불가현상 ... 4 더러럭배 2017.09.30 0/0
질문 이 오토핫키 해석 좀 부탁드립니다. 2 강또깡 2017.09.30 0/0
질문 변경된 변수를 실시간으로 gui에 표시할수있나요?? 2 포천아지 2017.11.25 0/0
Board Pagination Prev 1 ... 126127128129130131132133134 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글