[AHK] 이미지 서치 기능으로 반복 작업을 단축키 한번에!
안녕하세요.
이번에는 오토핫키의 이미지서치(imageSearch)를 활용하여 반복 작업을 한번에 하는 방법을 소개합니다.
오토핫키에서 이미지서치 기능만 잘 활용해도 노가다를 줄일수 있습니다.
"일일이 한개씩 지우자니 너무 오래 걸리네요." 와 같이 단순 노가다 반복 작업을 단축키로 한번에 해결하는 스크립트를 짭니다.
일단 한개씩 일일이 지우는 작업은
"오프다운작업목록" 이라는 창에 있는 "빗자루" 아이콘을 클릭을 합니다.
안 보일때까지 클릭하면 되겠죠.
"오프다운작업목록" 이란 창을 찾아서 활성화한 후
거기서 일정 영역에 있는 "빗자루" 아이콘을 클릭한다.
3번 스캔해서 없으면 작업 종료!
스크립트 동작을 요약하면 저렇겠죠.
이제 만들어봅시다.
일단 윈도우 창을 분석합니다.
오토핫키를 설치하면 같이 깔리는 AutoIt3 Window Spy를 활용하면 좋습니다.
창 이름은 역시 "오프다운작업목록"이고
클래스명은 "ahk_class BaseGui"이군요.
그리고 필요한 아이콘을 땁니다.
아이콘 배경색이 바뀌므로 이미지서치의 투명배경 기능을 활용하기 위해 배경을 특정 색상으로 만듭니다.
전 검정색으로 했습니다.
참고로 윈도 그림판으로 작업했습니다.
이걸 이미지서치를 하는데 투명배경으로 적용하려면 "*transBlack" 을 경로 파라미터에 추가하면 됩니다.
검정색을 투명으로 인식한다는 옵션입니다.
흰색을 투명으로 인식한다는건 "*transWhite" 입니다.
찾은 좌표에서 X+44,Y+15 를 클릭하면 빗자루 아이콘을 클릭하게 되는거죠.
이걸 Loop로 반복하면 되고 3번 정도 못 찾으면 반복문을 종료합니다.
간단하게 반복작업을 오토핫키로 편하게 할 수 있습니다.
아래가 그 스크립트입니다.
#NoEnv ; 변수명이 환경변수인지 체크하는걸 무시, 스크립트 속도 상승과 환경변수 혼동으로 인한 버그 방지
#SingleInstance force ; 스크립트를 동시에 한개만 실행
#Persistent ; 핫키가 없더라도 스크립트 실행을 유지
SetBatchLines,-1 ; 라인간 딜레이를 없애서 속도 상승
ListLines, Off ; 스크립트가 최근 실행한 커맨드 표시 안함 = 스크립트 속도 상승
CoordMode, Pixel, Relative ; 픽셀 위치 기준을 상대 좌표로 정함
CoordMode, Mouse, Relative ; 마우스 위치 기준을 상대 좌표로 정함
SetTitleMatchMode, 2 ; 타이틀 매치 모드를 2로 설정 = 창 제목 이름을 일부만 맞아도 적용
FileInstall, img\pathnclear.bmp, %A_Temp%\pathnclear.bmp, 1 ; 컴파일시 그림파일을 실행파일에 저장
workWin:="오프다운작업목록"
return
^!X:: ; Ctrl+Alt+X 키를 눌렀을때 동작
i:=0
Loop{
IfWinNotActive, %workWin%
WinActivate, ahk_class BaseGui ; 바이두 클라우드 창 활성화
Sleep,500
ImageSearch, reX, reY, 440,90,530,340,*transBlack *50 %A_Temp%\pathnclear.bmp ; *transBlack은 투명배경을 검정색에 적용, *50은 색값 오차를 50으로 지정
if ( ErrorLevel = 0 ){
MouseClick, Left, reX+44, reY+15,1
Sleep,1000
}else{
i++
if ( i > 3 ){ ; 3번 동안 500X3=1500=1.5초 동안 못 찾으면 반복문 중지
MsgBox, 완료된 파일이 없습니다.
break
}
}
}
return
스크립트+컴파일된 실행파일 압축