반갑습니다 선배님들
얼마전에 오토핫키를 알고 공부하던중
이미지 서치에 대해서는 이게시판에 많은글들이 있는건 알고 있으며
비활성 이미지서치에서 며칠동안 이곳저곳 많은곳을 검색했으나
다른분들이 올려놓은 코드 그대로 복붙으로 해도 저만 안되서 어느부분의 문제인지 도무지 모르겠어서
염치불구하고 질문드립니다.
비활성 이미지서치중 범위지정 문제입니다.
최종적으로 복붙에서 테스트하던코드는 이곳 게시판에 다른분이 올리신건데 아래와 같습니다.
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
위에서 말씀드렸다시피 시작좌표는 수치를 바꿔도 정상작동합니다.
끝좌표만 들어가면 이미지를 못찾습니다.
도움을 주시면 감사하겠습니다.
"img/폴더.bmp" -> "img\폴더.bmp"
이렇게 해야 되지 않을까요?