안녕하세요. 업무 자동화 RPA 매크로 오토픽입니다.
지금까지 마우스와 키보드 입력을 비활성 멀티 다클라로 처리하는 방법을 알아봤습니다.
오늘은 픽셀 서치와 이미지 서치를 비활성에서 사용하는 방법을 알아보도록 하겠습니다.
오토픽 에디터를 실행하고, 좌측 하단의 도구 상자에서 프로그램 카테고리를 확장하세요.
핸들 추가 액션을 더블 클릭해서 스크립트에 추가하세요.
도구 상자에서 조건 카테고리를 확장하고 픽셀 서치 액션도 하나 추가하세요.
테스트를 위해 녹스 앱플레이어를 4개 실행했습니다.
우선, 그림판이나 메모장과 같은 프로그램은 매인안에 입력 받을 프로그램의 구조가 완전 동일합니다.
핸들 처리는 프로그램명과 콘트롤 구조로 프로그램 목록을 만듭니다.
아래 그림과 같이 일단 프로그램명이 모두 동일합니다.
핸들을 선택하면 컨트롤 구조가 만들어집니다.
이게 모두 동일하면 추가 옵션에서 AddSelectAll로 변경하면 모든 프로그램을 비활성으로 처리할 수 있습니다.
하지만, 녹스 앱플레이어처럼 프로그램 이름이 모두 다르면 다른 방법을 사용해야 합니다.
핸들 찾기 옵션을 Custom으로 변경하고, 프로그램 이름에 Nox*를 입력하세요.
이렇게하면 윈도우 프로그램 목록에서 창 제목이 Nox로 시작하는 모든 프로그램을 찾아줍니다.
픽셀 서치 액션을 선택하고, 픽셀 선택을 클릭해줍니다. 그리고, 첫번째 녹스의 픽셀 위치를 선택하세요.
저 위치를 클릭할건데요. 핸들 추가에서 모든 녹스가 등록되어 있기 때문에 전부 같은 위치의 픽셀을 찾아서 클릭합니다.
마우스 사용을 True로 변경하고, 입력 방식을 PostMessage로 변경하세요.
일단, 마우스 사용을 True로 설정하면 해당 프로그램에서 픽셀을 찾으면 마우스 동작이 발생합니다.
그리고, 마우스는 비활성 PostMessage 방식으로 동작합니다.
두번째 녹스에서 해당 픽셀 값을 찾지 못하게 다른 프로그램을 실행 시켜두었습니다.
여기서부터 내용이 복잡해집니다. 멀티 다클라 매크로를 제작할 때 조심해야 할 부분들이 몇가지 있는데요.
이 내용을 잘 학습하셔야 매크로가 정상적으로 동작합니다. 일단, 아래와 같이 녹스 4개중 두번째는 픽셀을 찾지 못하게 했습니다.
그리고, 좌표를 보정하는 방법에 대해서 이해할 필요가 있는데요.
비활성 모드에서 하나의 클라이언트를 사용할 때는 문제가 없지만, 다클라에서는 몇가지를 더 신경써야 합니다.
일단, 기준이 되는 좌표를 설정해줘야 합니다. 도구 상자의 매크로 설정에서 비활성 장치 설정 액션을 추가하세요.
첫번째 기준이 되는 녹스 앱플레이어를 선택하세요.
녹스 앱플레이어가 4개가 있습니다.
여기서 첫번째 녹스의 위치가 0, 0이고 두번째는 100, 100 세번째는 200, 200이라고 가정 해보세요.
핸들을 설정하고 픽셀 서치나 이미지 서치는 윈도우 캡쳐가 아닌 프로그램 캡쳐 방식으로 동작합니다.
활성 방식의 이미지 서치는 찾을 이미지를 윈도우의 좌측 상단 0, 0부터 우측 하단으로 찾습니다.
아래 그림처럼 두번째 녹스의 Tools 아이콘을 찾을 때 화살표처럼 위치가 계산됩니다.
아래는 비활성 모드에서 아이콘의 위치입니다. 프로그램의 매인이 아닌 콘트롤 영역부터 계산이 된다는걸 이해해야 합니다.
이 부분이 활성 모드와 비활성 모드의 가장 큰 차이점입니다.
첫번째 녹스가 0, 0 위치에 있고, 아이콘이 100, 100 위치라면 마우스 클릭 위치도 100, 100입니다.
하지만, 두번째 녹스는 100, 100 위치에 있고 아이콘이 100, 100이기 때문에 실제 마우스 클릭 위치는 200, 200이 됩니다.
비활성 모드에서는 자기 자신부터 계산이 되기 때문에 실제 위치를 보정해줘야 합니다.
지금 너무 빠르게 동작하기 때문에 차이를 알기가 쉽지 않은데요. 핸들 추가 액션에서 지연 값을 1000으로 설정해보세요.
이렇게하면 각각의 프로그램에서 1초 지연이 발생하게 됩니다.
매크로를 실행하고 결과를 확인해보면 두번째 녹스에서는 Tools 아이콘을 찾지 못했지만, 마우스 클릭이 발생하는걸 확인할 수 있습니다.
이렇게 동작하는 이유는 비활성 매크로의 동작 방식이 동기적으로 수행되기 때문입니다.
정리하면 기준이 되는 첫번째 녹스에서 픽셀 서치 또는 이미지 서치가 되면, 핸들이 등록된 프로그램 수만큼 마우스와 키보드가 동작합니다.
첫번째 녹스에서 한번만 픽셀 서치 또는 이미지 서치가 발생하고, 참이라면 마우스, 키보드만 복사해서 입력해주는 방식입니다.
이번에는 비활성 매크로의 비동기 동작을 알아볼께요.
핸들 추가 액션의 속성에서 비동기 모드를 True로 변경하세요.
이렇게하면 모든 동작이 각각 독립적으로 실행됩니다.
매크로를 실행하면 두번째 녹스에서는 마우스 클릭이 발생하지 않습니다. 첫번째 녹스와 별개로 독립적으로 실행되기 때문에 자체 판단합니다.
비동기 모드를 True 또는 False로 변경하면서 확인하면 동작 방식을 이해할 수 있습니다.
멀티 다클라 비활성 매크로에서 이미지 찾아서 클릭하는건 생각보다 어려울 수 있습니다.
자세한 내용은 아래 동영상을 참고 해주세요.
감사합니다.
'매크로' 카테고리의 다른 글
lua 스크립트 로지텍 (0) | 2024.11.03 |
---|---|
폰보드 멀티 다클라/다계정 창 정렬 프로그램 (0) | 2024.11.03 |
파이썬 이미지 확대 xy좌표 (0) | 2024.11.03 |
멀티 다클라 비활성 매크로 - 핸들 추가 (마우스) (0) | 2024.11.03 |
경기도 등산 모음 추천 쌍봉산 (5) | 2024.11.03 |
댓글