매크로

조회 수 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
분류 제목 글쓴이 최근변경 추천
질문 Thread, Priority,n 을 잘 모르겠습니다.. 화프 2016.04.21 0/0
질문 this application is protected 오류 세븐길들이기 2023.02.24 0/0
질문 this application is protected with unregistered ver... 앙븐각 2016.08.24 0/0
질문 themida 사용하시는분 계신가요? 7 호로록뚝딱 2014.11.26 0/0
질문 Target Label does not exist 에러가 뜹니다 5 험블비 2017.08.27 0/0
질문 T7GG님 비활성 매크로 질문입니다. 14 bleuG 2016.06.24 0/0
질문 suspend나 pause를 gui에 표시할수 있나요? 2 ddfa4 2017.03.05 0/0
질문 SPY ClassNN 값 편하게 가져오는방법 있나요? 4 신령공주 2016.05.22 0/0
질문 splashimage(스플래쉬이미지) 관련해서 해결법좀 ㅠ 2 몬길을하자 2016.12.07 0/0
질문 splashimage 질문좀요 ㅠㅠ 8 shcjf 2015.01.11 0/0
자유 Soundbeep 5 보득 2015.02.02 2/0
정보 SMTP 메일보내기 13 모바게 2020.08.10 2/0
질문 smartgui 공식 사이트가 어디인가요"? 2 응응s 2015.05.28 0/0
질문 smart gui 질문입니다 3 올드휴고 2015.02.14 0/0
질문 smart gui 질문이에요~ 2 올드휴고 2015.02.15 0/0
질문 smart gui 질문이에요~ 3 올드휴고 2015.03.12 0/0
질문 Sleep 에 Edit창에 입력한 값을 적용하려고합니다. 5 우리강아지 2016.05.19 0/0
질문 sleep 시간 질문 1 응애제니 2022.11.01 0/0
질문 sidesync 이미지를 못찾네요 복권상인 2016.08.23 0/0
질문 Shell.Explorer 새로고침? 13 _Crash 2015.04.21 0/0
Board Pagination Prev 1 ... 170171172173174175176177178 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글