매크로

조회 수 947 추천 0 댓글 3

반갑습니다 선배님들

얼마전에 오토핫키를 알고 공부하던중


이미지 서치에 대해서는 이게시판에 많은글들이 있는건 알고 있으며

비활성 이미지서치에서 며칠동안 이곳저곳 많은곳을 검색했으나

다른분들이 올려놓은 코드 그대로 복붙으로 해도 저만 안되서 어느부분의 문제인지 도무지 모르겠어서

염치불구하고 질문드립니다.


비활성 이미지서치중 범위지정 문제입니다.


최종적으로 복붙에서 테스트하던코드는 이곳 게시판에 다른분이 올리신건데 아래와 같습니다.


search_rimg(image, hwnd, byref vx, byref vy, fromX, fromY, toX, toY) {
pToken := Gdip_Startup() ;필수
pBitmapHayStack := Gdip_BitmapFromhwnd(hwnd) ;화면비트맵
pBitmapNeedle := Gdip_CreateBitmapFromFile(image) ;찾을이미지
Sleep, 100
if Gdip_ImageSearch(pBitmapHayStack,pBitmapNeedle,list,fromX,fromY,toX,toY,10,0x000000,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
}
}

여기서 범위의 끝지점 지정부분
toX, toY 이부분에 0을 제외한 다른숫자만 들어가면 이미지를 못찾습니다.
시작점
fromX, fromY 부분은 정상작동합니다.

제가 출력 테스트한 코드는 아래와같습니다.

#Include Gdip_all.ahk
#Include Gdip_ImageSearch.ahk
#Include Sch_img.ahk ;위 코드가 있는파일

;아래는 실행파일

F1::

    Title = 타이틀 
 WinGet,winid,ID,%Title%

  if(Search_rimg("img/폴더.bmp",winid,x,y,18,79,100,100)){
  MsgBox, success!! x=%x% y=%y% %ErrorLevel%
  ControlClick, x%x% y%y%, %Title%
 }
 else
 {
  MsgBox, 못찾음 %ErrorLevel%
 }
 
}
return

F12::
ExitApp
return

위에서 말씀드렸다시피 시작좌표는 수치를 바꿔도 정상작동합니다.
끝좌표만 들어가면 이미지를 못찾습니다.

도움을 주시면 감사하겠습니다.

  • Hangoon 2018.09.27 08:55

    "img/폴더.bmp" -> "img\폴더.bmp"

    이렇게 해야 되지 않을까요?

  • 짜근햄 2018.09.27 17:09
    답변 감사합니다.
    하지만 그문제는 아닌것 같습니다.
  • Hangoon 2018.09.29 01:14
    코드는 문제 없어보이는데요.. 좌표범위 안에 이미지가 위치해 있는지 확인해보세요

    위에 사용하신 search_rimg라는 함수는 Gdip_ImageSearch 함수 리턴값에 대한 이해가 별로 없으신 상태로 작성된거 같습니다
    Gdip_ImageSearch.ahk 열어서 주석처리된 설명을 잘 읽어보시면 써치 실패시 각종 에러코드를 리턴합니다.
    그런것들을 사용하면서 확인할 수 있도록 작성해야 하는데 Gdip_ImageSearch가 True이면 True를 리턴하는것은 Gdip_ImageSearch가 에러코드를 리턴했을때도 search_rimg는 True를 리턴하기 때문에 별로 좋은 함수 구성은 아닌 것 같네요

    여튼 search_rimg 가 false로 잡히는걸로 봐선 Gdip_ImageSearch 함수 실행 시 오류는 안났다는 이야기고 단순히 써치결과가 0이라는 뜻이 되는데, 동일한 상황에서 끝좌표를 0으로 놨을때는 써치가 잘 된다면 찾고자 하는 이미지가 시작좌표~끝좌표 안에 안에 없다는 얘기가 되겠지요.

최근 추천글

오핫 제작합니다 1 설입 2024-06-18 23:45 +2
List of Articles
분류 제목 글쓴이 최근변경 추천
자유 오토핫키 정말 물건인것같아요 3 뫙치 2022.12.14 0/0
질문 오토핫키 변수 변경 질문드려요~ 1 아기수다리 2022.12.14 0/0
질문 질문 드립니다. 굽신굽신 (--)(__)(--) ~♡♡♡♡♡♡ 5 제발등업좀2 2022.12.14 0/0
질문 블루스택 활성화 질문 드립니다. 11 colt 2022.12.14 0/0
질문 윈드로이에 키(문자) 보내기 질문드립니다 2 리체 2022.12.14 0/0
질문 질문하나 드립니다 13 토스트 2022.12.14 0/0
질문 안녕하세요 오토핫키고수분들꼭봐주세요 3 목탁치는신부 2022.12.14 0/0
질문 레이븐 매크로 다중 이미지 서치 질문 드립니다 9 스피릿치 2022.12.14 0/0
질문 마우스 클릭 질문입니다. 3 Zhus 2022.12.14 0/0
질문 이미지 서치에 대해서 궁금한 것이 있습니다 7 zzxxll 2015.09.21 1/0
질문 picture에 관해 질문이 있습니다 1 새벽에문득 2015.07.25 0/0
질문 GDIp로 블루스택이 캡쳐되지 않습니다.. 5 민틸 2017.09.11 0/0
질문 피파3 오토핫 구동 되나요?? 3 Zhus 2015.07.29 0/0
자유 오토핫키 공부 시작했는데 어렵네요 ㅋㅋ 2 craia 2015.07.26 0/0
질문 오토핫키 세븐나이츠 모험다시하기 질문좀ㅠㅠ 9 메루루루 2015.07.27 0/0
질문 이미지서치 범위지정에 대한 질문을 합니다~! 7 메루루루 2015.07.30 0/0
질문 베스트팁 모바게님 비활성 이미지 범위 서치 함수 질문... 7 아잉뿌잉 2015.09.21 1/0
질문 가상모니터 비활성에 관련되어 질문이 있습니다 12 사랑사랑 2015.09.21 0/0
질문 listview 질문좀 드려봅니다.. 1 뫙치 2015.07.28 0/0
질문 다른프로그램의 listview 읽는법 1 _Crash 2015.07.31 2/0
Board Pagination Prev 1 ... 495051525354555657 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글