본문 바로가기
이미지맥스 그리고 루아(lua)/[응용] 보다 효율적인 사용법

[이미지맥스] 이미지 검색 실패시 드래그 혹은 휠다운 등 추가 행동 하기

by 위치결정 2021. 4. 9.
반응형

이미지맥스를 이용하여 자동화툴을 제작하면서 특정 영역에서 이미지를 검색하고 찾지 못한 경우 드래그를 하거나 휠동작을 하여 스크롤을 내려 추가적으로 재차 이미지검색을 해야 할 경우가 있습니다.

 

반복문을 이용하여 해당 동작을 쉽게 구현할 수 있습니다.

 

우선 ImageSearch() 함수를 통해 이미지를 검색하여 return 값이 0:검색실패인 경우와 1:검색성공인 경우의 동작 코드를 작성합니다.

if ImageSearch('find_image') == 1 then
    print('이미지를 찾았습니다')
else
    print('이미지를 찾지 못하였습니다.')
end

--> 이미지를 찾은경우 '이미지를 찾았습니다' 문자열을 출력
--> 이미지를 찾지 못한 경우 '이미지를 찾지 못하였습니다' 문자열을 출력

이 동작에 for 반복문을 통해 원하는 이미지를 찾지 못하였을때 드래그, 휠다운 등의 동작을 추가하면 되겠죠.

횟수를 지정하기 위해 for 반복문을 사용하면 좋을듯합니다.

 

그러면 for문과 마우스제어 함수 Mouse()로 화면스크롤 기능을 추가해서, 이미지를 찾지 못한경우 휠다운하여 스크롤을 내리고 이미지를 3번 다시 찾는 동작을 구현하면 이와 같습니다.

for i = 1, 3, 1 do
    if ImageSearch('find_image') == 1 then
        print('이미지를 찾았습니다')
        break
    else
        print('이미지를 찾지 못하였습니다.')
        Mouse(LBUTTON, WHEELDOWN, 200, 200)
        Sleep(1000)
    end
end

for 반복문에 인덱스 i 변수를 초기값은 1, 최대값은 3, 1씩 증가 하게끔 선언하고

이미지를 검색하여 이미지를 검색시 '이미지를 찾았습니다' 라는 문자열을 출력하고 for문을 break로 빠져나옵니다.

이미지를 검색하지 못하면 '이미지를 찾지 못하였습니다' 라는 문자열을 출력하하고 마우스 제어 함수를 통해 휠다운, 1000ms (1초) 동안 스크롤 완료 딜레이 안정화 후 다시 for 반복문이 처음부터 동작합니다.

 

필요시 휠다운을 드래그로 바꾸거나, 인수를 더 추가하여 랜덤포인트로 동작하게 하면 되겠죠?

 

참 똑똑합니다.

반응형

댓글