본문 바로가기

정보 Talk/컴퓨터

오토핫키 이미지서치 스크립트 및 예제로 알아보자!



 최근 해야하는 업무량이 늘어나면서 전에 사용했던 오토핫키를 다시금 만지게 되었습니다. 아주 간단하면서 사용하기 좋기에 여러 분야로 응용이 가능한 AutoHotkey의 가장 큰 장점은 아마도 이미지서치 라고 생각해도 좋을 겁니다. 메신저에 새로운 메시지가 오거나, 간단한 팝업창을 발견했을때 바로 종료해준다던지, 이런 기능을 구현하기에는 ImageSearch가 엄청난 도움이 된답니다.


 이번 포스팅에서는 조금 더 자세한 스크립트와 다운로드 가능한 예제 파일을 통해서 처음 접하시는 분들도 쉽게 알 수 있으시도록 작성해보겠습니다.


http://ahkscript.org/ 에서 오토핫키를 DOWN 받을 수 있습니다.!!



 가장 먼저 보시면 F1:: 부분은 해당 키를 핫키로 지정하겠다. 라는 선언입니다. 별달리 어려운건 아니고, 그냥 해당 키를 누르면 실행이라고 생각하시면 되죠. 그 다음 Loop 다음 숫자를 적어주시지 않으면 기본적으로 무한정 반복이 됩니다.


 ImageSearch는 이미지 서치를 위한 함수명이고, x1,y1은 찾은 이미지의 x축, y축 좌표값을 저장할 변수입니다. 그 이후 1,1, ~ 1920, 1080, 부분은 화면상에서 검색할 부분을 지정해 주는 것인데, 1,1,은 대부분 동일하고, 뒷 부분은 자신이 사용하는 화면 해상도를 적어주시면 됩니다. 그리고 마지막은 찾을 이미지 파일을 적어주시면 되는데, 실행 파일과 같은 폴더 내에 있어야 편합니다. 안그러면 일일히 경로 지정을 해줘야 되니까요


 그 다음 부분 에러레벨 0 은 문제없이 서치 성공시에 동작할 부분입니다. 해당 {}내에 여러가지 소스를 넣어서 작동시킬 수 있답니다. 마지막인 ErrorLevel = 1 부분은 찾지 못했을 때 작동할 부분으로 실패한 소스 코드가 계속 반복되는 것을 막거나, 혹은 다른 부분으로 넘어가기 위해서 사용됩니다.


 

 간단한 스크립트를 통해서 알아보겠습니다. 위의 코드는 map.png라는 사진을 1920 1080 범위 전체에서 찾게 됩니다. 만약 이상 없이 성공했다면 해당 이미지 위로 마우스를 이동시키고 나서 500ms 대기 후 왼쪽 클릭을 하고 다시 500ms를 쉬고, Y키를 누르게 됩니다.

 만약 실패했을 경우에는 '이미지 서치 실패' 라는 메시지 박스를 출력하고 1000ms를 쉬고 해당 코드를 탈출하게 됩니다.


 F1를 누르면 실행하고, F2를 누르면 소스코드를 중간에 정지가 가능합니다. 


가끔가다가 보면 오토핫키 비활성이라는 내용을 많이 찾으시긴 하시던데, 해당 부분은 간단하게 ControlSend 와 같은 명령어를 통해서 쉽게 제작하실 수 있습니다. 


 단순히 인터넷에서 주어지는 정보만을 복사/붙여넣기로 짜집기 하시기보다는 자기 자신만의 알고리즘을 구현해서 꼭 필요한 프로그램을 제작하셔서 사용하신다면 참 좋을 것 같습니다.


 밑에는 간단한 예제를 작성해두었으니 다운받으셔서 이렇게 사용하면 되는거구나.






imagesearch.txt