매크로

조회 수 260 추천 0 댓글 13



https://i.imgur.com/doevKXr.png




; 이미지 서치

; seconds : 시간 지정 (기본설정상 1초 = 10번 시도, 0.5초 = 5번 시도함)

; imgX, imgY : 리턴받기 위해 사용

; fromX , fromY , toX , toY : 이미지 서치 범위 지정

; 리턴값 : 1 = 이미지 찾음 , 0 = 이미지 못찾음, -1 = 이미지 파일 없음

CheckImage(img, seconds=0.3, ByRef imgX="", ByRef imgY="", fromX=0, fromY=0, toX=0, toY=0) {

? ? global ActiveID, DebugMode

CoordMode, Pixel, Screen

? ? Sleep, 10


? ? If ( ActiveID)

? ? ? ? WinGetPos, winX, winY, winW, winH, % ActiveID

? ? Else

? ? ? ? winX := 0, winY := 0, winW := A_ScreenWidth, winH := A_ScreenHeight


? ? sleepTime := 100

? ? times := seconds * (1000 / sleepTime)

? ? If ( times=0)

? ? ? ? times := 1


? ? x := winX, y := winY, w := winX+winW, h := winY+winH

? ? If (fromX && fromY && toX && toY)

? ? {

? ? ? ? w := x+toX, h := y+toY, x := x+fromX, y := y+fromY


? ? ? ? If ( DebugMode = 1)

? ? ? ? {

? ? ? ? ? ? ToolTip, 범위시작, x, y, 11

? ? ? ? ? ? ToolTip, 범위끝, w, h, 12

? ? ? ? }

? ? }


? ? Loop, %times%

? ? {

? ? ? ? ImageSearch, oX, oY, x, y, w, h, *60 %A_ScriptDir%\%img%

? ? ? ? If ( ErrorLevel = 0)

? ? ? ? {

? ? ? ? ? ? imgX := oX

? ? ? ? ? ? imgY := oY

? ? ? ? ? ? If ( DebugMode = 1)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? ToolTip, %img%, imgX, imgY, 10

? ? ? ? ? ? }

? ? ? ? ? ? Return 1

? ? ? ? }

? ? ? ? Else If ( ErrorLevel = 2)

? ? ? ? {

? ? ? ? ? ? MsgBox, , , 이미지 없음 : %img% , 1

? ? ? ? ? ? Return -1

? ? ? ? }

? ? ? ? Sleep, %sleepTime%

? ? }

? ? Return 0

}


; 비활성 이미지 클릭

; seconds : 시간 지정 (CheckImage 설정에 따름)

; fromX , fromY , toX , toY : 이미지 서치 범위 지정

; 리턴값 : 1 = 이미지 찾음 , 0 = 이미지 못찾음, -1 = 이미지 파일 없음

ClickImage(img, seconds=0, fromX=0, fromY=0, toX=0, toY=0) {

? ? Sleep, 10

CoordMode, Pixel, Screen


? ? result := CheckImage( img, seconds, x, y, fromX, fromY, toX, toY)

? ? If (result = 1)

? ? {

? ? ? ? global ActiveID, DebugMode, WindowCaptionHeight, WindowBorderWidth, WindowBorderHeight


? ? ? ? WinGetPos, winX, winY, winW, winH, % ActiveID


? ? ? ? px:=x-winX-WindowBorderWidth+10

? ? ? ? py:=y-winY-WindowBorderHeight-WindowCaptionHeight+20


? ? ? ? p := px|py<<16


? ? ? ? If ( DebugMode = 1)

? ? ? ? {

? ? ? ? ? ? ToolTip, 이미지 클릭 %img%, x, y, 10

? ? ? ? }


? ? ? ? PostMessage, 0x201, 0, %p%, , % ActiveID

? ? ? ? PostMessage, 0x202, 0, %p%, , % ActiveID

? ? }


? ? Sleep, 200

? ? Return result

}


번거롭게해서 죄송합니다만


저렇게있을떄 이미지에서 ?윈도우상 저기 저 시작을?320 250 라고하고 끝을?415 380 라했을때

저 빨간색 박스 안에서만 이미지를 서치하고싶은대?

저 함수를 if컨디션에서 쓰고싶으면 이렇게 값을 넣고 쓸수있나요?


if?( CheckImage( "image\판매\판매영웅\판매3.png",0, "", "", 320, 250, 415, 380?) = 1 )


if ( ClickImage( "image\판매\판매영웅\판매3.png", 0, 320, 250, 415, 380 ?) = 1)


https://i.imgur.com/NaahLJ7.png



  • USW 2015.04.24 01:08

    물어보시는게아니라 해결하신건가요?.....


  • profile
    pervm 2015.04.24 01:19
    아뇨 물어보는건대요 ㅠㅠ
  • USW 2015.04.24 04:00
    클릭이미지 자체안에 체크이미지가 있어서 클릭이미지 하나만 사용하셔도 될것같아요.(물론소스는 다있어야겠지요)

    그리고 찾는범위 넣어주셧는데 그렇게 사용하는거 맞는것 같아요. 코드확인해보니깐
  • profile
    pervm 2015.04.24 04:01
    감사합니다 ㅎㅎ; 안될줄알았는대 가능하다니 다행이내요 ㅠ
  • profile
    pervm 2015.04.24 15:53
    질문하나더있는대요 만약에 이미지 서칭하는 이미기가 여러게 윈도우에서 중복되면 어떻게 서칭하나요?
  • profile
    pervm 2015.04.24 23:34
    근대 이미지를 저범위안에서 못찾는경우는 어찌해야하나요 ㅠ
  • USW 2015.04.25 00:29
    저 범위안에서 찾는이미지가 움직인다면안되구요..

    만약에 글자를 찾고 싶다면 imagesearch의 옵션중 trans를 사용해보세요
  • profile
    pervm 2015.04.25 00:51
    움직이는 이미지는 아니구요 가만히 있어도 인식을못하는대 이미지가 상당히 크거든요 한 저범위의 1/4정도인대 그래서 그런가요? 범위를 좀 늘려줘야하나요?
  • USW 2015.04.25 01:22
    찾는범위에서 어떤 이미지인지 알아야할것같습니다. 뒷배경을 찾는거라면 혹시 불빛이 깜빡거리기 떄문이지아닐지요..무조건 찾아져야하는데말이죠...움직이지않는배경이라면
  • profile
    pervm 2015.04.25 01:45

    세븐나이츠 쫄판매기능을 제작중인대요 움직이지않는 이미지에요 글에 이미지 다시 업데이트했어요?


    저위에서 이미지가 중복되는것들이있잖아요 그래서 이미지 서치할영역을, 영웅창에 8마리가 저렇게있으면 이미지 서칭범위를

    하나하나 나눠서 그안에서 하나씩 서칭할려구하는대요 잘안되내요. 뭐가문제일까요

  • USW 2015.04.25 02:23

    일단, 한 영역에서 찾는 이미지가 제대로 찾아지는지 확인부터해야할것 같습니다.

    블루스택에서 다른곳에서 이미지는 잘 찾아지시는데, 저 화면에서만 안되는건가요?

  • profile
    pervm 2015.04.25 03:05
    네 다른곳에서 이미지는 잘찾아지는대요 쫄판매 돌릴때만 이러내요.
    만약에 블루스택에서 다른곳에서 이미지는 잘찾아지는대 저창에서만 안찾아진다는건 코드 쓴거에 문제가있다는 거겠죠?
  • USW 2015.04.27 00:32
    네...그럴 가능성이 높다고봅니다...제가 답변을 늦게해서 죄송하구요...

    저는 소위 "허접"이라 간단한 질문에 대한 답변만 해드려서 죄송합니닼

List of Articles
분류 제목 글쓴이 최근변경 추천
질문 GUI 스킨을 입히고 exe 컴파일한 후에 다른 PC에서는 ... 4 Rabbit 2015.04.23 0/0
질문 adb 이미지캡처시 90도회전되는 문제요 18 우후훅 2015.04.23 0/0
질문 ini IniWrite 질문입니다! 4 침묵의고요 2015.12.07 0/0
질문 윈드로이 다중 이미지서치 문의합니다. 2 퉁군 2015.04.23 0/0
질문 무한 loop문 사용시 cpu점유율 증가...해결방법좀 문의... 4 퉁군 2015.04.24 0/0
질문 모바게님 이미지서칭함수 질문입니다.ㅠㅠ 13 pervm 2015.04.27 0/0
질문 특정부분빼고 모니터가리기 _Crash 2015.04.24 0/0
질문 Windroye 다중실행시 Client 좌표 질문요(수정)(해결완료) 9 푸른호수 2015.04.25 0/0
질문 L 버전을 패킹하면... 예지력님의 GUI 스킨 적용이 잘... Rabbit 2015.04.24 0/0
질문 안녕하세요 질문좀 올리겠습니다 4 다중이 2015.04.26 0/0
질문 고수님들께 질문드릴께요~ 2 퉁군 2015.04.24 0/0
질문 gui 탭 관련 범위 질문입니다. 2 pervm 2015.04.24 0/0
질문 오토핫키를 더블클릭해도 바탕화면에 창이 안뜨네요 1 눈알먹어 2015.04.27 0/0
질문 리스트뷰 구이창2개 질문드려요 3 흑콘 2015.04.28 0/0
질문 이미지 여러개 한번에 찾으려면 어떻게 해야할까요 1 지니블렉션 2015.04.25 0/0
질문 마우스 잠금 질문 드려요~ 2 퉁군 2015.04.25 0/0
질문 Gui combobox 관련 질문 드립니다. 2 덩구리얌 2016.03.04 0/0
질문 adb ip 잡는것에 관련하여 질문드립니다 4 낙길 2016.08.10 0/0
질문 오랜만에 질문입니다. 비활성 postmessage 5 올드휴고 2015.08.28 0/0
질문 PostMessage 도중에 키보드 입력 8 성운이 2015.04.28 0/0
Board Pagination Prev 1 ... 262728293031323334 ... 173 Next
/ 173

전체 최신 인기글

전체 주간 인기글