매크로

조회 수 197 추천 0 댓글 7
?이미지 서치
; seconds : 시간 지정 (기본설정상 1초 = 10번 시도, 0.5초 = 5번 시도함)
; imgX, imgY : 리턴받기 위해 사용
; fromX , fromY , toX , toY : 이미지 서치 범위 지정
; 리턴값 : 1 = 이미지 찾음 , 0 = 이미지 못찾음, -1 = 이미지 파일 없음
CheckImage(img, seconds=0.5, 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
? ? ? ? }
? ? }




여기서 이해가 잘안가는대요 seconds를 0으로두면 ?time이 1로 되고 0.5 면 5 로되는대
저 time이 검색하는 횟수인가요?
그렇다면 높은 숫자를 넣을수록 정확도가 높아지는건가요?


  • theruin 2015.04.22 07:01

    Loop, %times%

    ? ? {

    ? ? ? ? ImageSearch, oX, oY, x, y, w, h, *50 %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


  • theruin 2015.04.22 07:03
    함수를 가져 오시려면 끝까지 가져오 셨어야죠 아무리봐도 사용하는데가 없어서 이상하다고 생각했더니 뒤에 남은 부분이 있네요.

    지금 보면

    times := seconds * (1000 / sleepTime)
    이걸로 times 을 구하고

    Loop, %times%

    여기에 사용하죠 Loop 횟수에 사용되네요 몇번 서치하는가군요
  • profile
    외치기 2015.04.22 09:31
    ? ? If ( times=0)
    ? ? ? ? times := 1
    추가로 이부분을 보시면 time이 0일경우 1로 바꿔줍니다.
    무한루프를 막기위해서죠.
  • 모바게 2015.04.22 19:09

    상단에 설명부분에

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

    이라고 되어있습니다.

  • profile
    pervm 2015.04.22 20:21
    그러니까 시간지정을 높게 해놓으면 놓을수록 많이 시도하는대 그만큼
    엑시큐트하는 시간이 늘어나는거내요?
  • 모바게 2015.04.22 21:21

    10초동안 찾으라고 했을 경우라도, 첫회에 성공하면 바로 결과를 넘겨줍니다.
    당연히 못찾을 경우에는 10초동안 찾으니까 최소 실행시간은 10초가 되겠죠? 기본설정대로 하면 100번 찾는 시도를 할테고요..
    어려운가요? 흠..
    많이 시도하면 당연히 실행시간 증가하는건데..

    PC사양이나 네트워크 상황등에 따라서 화면이 로딩되거나 변경되는 시간이 각각 다르므로, sleep문으로 일정시간 쉬는 것 보다는 조금 더 정 확도가 있다고 생각해도 상관없습니다만..

    화면상 이미지 서치의 정확도와는 아무 연관이 없습니다..

  • profile
    pervm 2015.04.22 22:21
    설명감사합니다 모바게님.
    그렇다면
    시간을 높게잡아주고 sleep 문을 없애도 문제가 없는건가요?
    아니면 시간을 높게잡고 sleep문 시간을 낮게하는건가요?

List of Articles
분류 제목 글쓴이 최근변경 추천
자유 비활성(GDIP,ADB)이미지서칭 결국은... 7 우후훅 2015.04.24 0/0
질문 특정부분빼고 모니터가리기 _Crash 2015.04.24 0/0
질문 모바게님 이미지서칭함수 질문입니다.ㅠㅠ 13 pervm 2015.04.27 0/0
자유 오토핫키 입문할때는 비활성만 되어도 좋았는데요... 5 푸른호수 2015.04.24 0/0
질문 무한 loop문 사용시 cpu점유율 증가...해결방법좀 문의... 4 퉁군 2015.04.24 0/0
질문 윈드로이 다중 이미지서치 문의합니다. 2 퉁군 2015.04.23 0/0
질문 adb 이미지캡처시 90도회전되는 문제요 18 우후훅 2015.04.23 0/0
질문 GUI 스킨을 입히고 exe 컴파일한 후에 다른 PC에서는 ... 4 Rabbit 2015.04.23 0/0
질문 GDI 캡쳐 관련해서 질문 드립니다. 5 인형 2015.04.23 0/0
질문 자기자신말고 다른오토핫키프로그램 모두종료 3 _Crash 2015.04.24 0/0
질문 비활성 이미지 클릭 질문입니다 2 시원짱 2015.04.23 0/0
질문 모바게님 이미지서칭함수 오차율 질문 7 pervm 2015.04.22 0/0
질문 다시한번 질문드릴게요. 가상화관련 4 USW 2015.04.23 0/0
질문 FileInstall 관련 질문 41 USW 2016.10.29 0/0
질문 지니 이용한 쿠키런 매크로있으신분... 2 댕고링 2015.04.23 0/0
질문 오토핫키 명령어 질문 6 papepo 2015.04.21 0/0
질문 gui창 2개 중 1번 gui창에서 확인하면 닫아지면서 2번 ... 7 Rabbit 2015.04.21 0/0
질문 Shell.Explorer 새로고침? 13 _Crash 2015.04.21 0/0
질문 구이 스크립트 잘못된 부분 질문드립니다 3 푸른호수 2015.04.21 0/0
질문 구이실행시 정지 질문드립니다. 3 푸른호수 2015.04.20 0/0
Board Pagination Prev 1 ... 170171172173174175176177178 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글