스크립트 기초부터 하나씩! - 비활성 매크로에서 이미지 찾아서 클릭하기.
페이지 정보
본문
안녕하세요. 엔지엠소프트웨어입니다. 오늘은~ 이미지 서치 또는 이미지 매치를 비활성으로 하는 방법에 대해 알아보도록 하겠습니다. 이 글을 읽기전에 [ 이미지를 찾아서 클릭하기 ]를 먼저 보고 오시면 이 내용을 이해하는데 도움이 됩니다. 또한, 활성과 비활성에 대한 차이점을 알고 싶으면 [ 비활성 키보드 입력 ]도 읽어보세요. 30분만 투자하시면~ 좀 더 편하게 이 글을 읽을 수 있을겁니다. 자 먼저 에디터를 실행하고, 스크립트를 하나 추가(Ctrl+N)해주세요.
※ 필독 - [ 비활성 다클라 매크로를 만들 때 주의사항 ]
비활성으로 매크로를 동작시키려면 핸들을 추가해야 합니다. 아래와 동영상을 참고해서 [ 핸들 추가 ] 액션과 [ 이미지 매치 ] 액션을 추가해주세요.
테스트를 위해 그림판을 하나 추가해주세요. 그리고, 붓의 크기를 가장 크게하고, 오렌지색으로 설정합니다. 그림판 중앙을 클릭해서 점을 하나 찍어주세요. 이제 에디터로 돌아와서 이미지 매치를 선택하고, 속성에서 캡쳐를 누릅니다. 찾을 이미지가 그림판의 오렌지색 점이예요. 드래그해서 영역을 잡고 F1을 눌러서 저장해주세요. 저는 "오렌지.ngi"로 저장했습니다.
아직 그림판에 핸들을 설정하지 않았기 때문에 지금 실행하면 활성 모드로 동작되는걸 확인할 수 있습니다. 확인을 위해서 마우스 동작을 "LeftClick"으로 변경해주세요.
실행(Ctrl+Alt+F8)하면 그림판의 오렌지색 점을 클릭하게 됩니다. 핸들을 추가하긴 했지만, 그림판을 설정하진 않았습니다. 그렇기에 찾은 오렌지색 점으로 마우스가 이동되고 클릭한것을 알 수 있습니다.
이번에는 비활성 모드로 동작시키기 위해 그림판을 핸들로 잡아주세요. 마우스로 그림판의 캔바스로 이동한 후 F1을 누르면 선택됩니다.
이제는 마우스가 이동하지 않고 그림판의 오렌지색 점을 클릭하는지 테스트 해보세요.
핸들을 추가하면 아래로 추가되는 마우스, 키보드 및 이미지 조건등등... 모두 핸들에 영향을 받게 됩니다. 아직 배우지는 않았지만, 서브 스크립트도 핸들 정보를 가져가서 자동으로 적용됩니다. 아래와 같이 옵션에서 마우스 이펙트 보이기를 체크하고 저장하세요. 그리고 다시 실행하면 마우스가 클릭하는 위치를 시각적으로 확인할 수 있습니다.
비활성 마우스와 동일하게 이미지 서치나 매치도 핸들이 추가되면 핸들로 설정한 프로그램(그림판, 녹스, 엘디, 게임이나 웹등등)을 기준으로 상대좌표로 자동 계산됩니다. 그렇기에 위치를 변경하거나 다른창으로 가려도 정상 동작합니다. 테스트를 위해 창을 이동하면서 실행 해볼께요. 이미지 매치라서 창이 이동되도 찾아지는게 아닌가 생각할수도 있는데요. 이미지 서치나 매치가 아닌 이미지 체크로 테스트해보면 좀 더 명확하게 확인할 수 있습니다.
비활성 모드이기 때문에 실제 이미지가 다른창에 가려져서 안보이더라도 정상적으로 찾고, 클릭까지 수행하는걸 확인할 수 있습니다.
비활성으로 매크로를 제작하는건 상당히 큰 메리트가 존재합니다. 매크로를 돌리면서 다른 작업을 할수도 있고, 여러창을 겹쳐놓고 실행해도 잘 동작하니까요. 하지만, 일부 프로그램(PC게임이나 매크로를 불법으로 사용하지 못하게 방지하는 프로그램)은 소프트웨어 신호(활성, 비활성)를 막습니다. 그래서 하드웨어 신호로 변환해서 매크로를 동작시켜야 합니다. 엔지엠은 이 부분에서 강력한 성능을 보여줍니다. 다른 매크로 프로그램들이 따라올 수 없는 기능이죠. 활성 또는 비활성으로 만든 스크립트에 하드웨어 신호로 바꿔주면 아무런 수정이나 변경없이 정상적으로 동작됩니다. 반대로 하드웨어 또는 활성 방식도 핸들 추가만으로 비활성 매크로가 됩니다.
활성, 비활성, 하드웨어, 하이브리드 방식을 자유롭게 사용할 수 있기에 많은 분들이 엔지엠 에디터로 스크립트를 제작하고 업무를 자동화하고 있습니다. 대량의 컴퓨터를 제어해야 한다면 컴퓨터, 스마트폰 또는 스마트워치로 원격 제어도 가능합니다. 완전 100프로 무인 자동화를 하나의 프로그램으로 구축할 수 있는건 현재 엔지엠 매크로가 유일합니다. 국내외를 통털어서요. 여기까지해서 매크로를 제작하기 위한 기본적인 내용은 대부분 배웠습니다. 하지만, 이 내용만으로 완벽한 자동화를 구현하기란 사실 불가능에 가깝습니다. 그래서 함수를 이용해야 하는데요. 이 부분도 차차 알아가보도록 하고, 오늘은 여기까지 공부하는걸로 할께요^^ 질문 또는 궁금한 내용은 댓글 또는 질문과 답변 게시판에 남겨주세요.
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~
- 이전글프로그램이 멈췄는지(응답 없음) 또는 중지되었는지 확인하는 방법. (How to tell if a program has hang, freezing, deadlock or stopped.) 21.05.16
- 다음글기초부터 하나씩! - 비활성 키보드 사용하기. (텍스트 읽기) 21.05.11