NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 멀티 다클라 매크로 프로그램 제작시 오프셋에 대한 이해.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 업무 자동화 매크로 프로그램을 제작할 때 하나의 매크로만 동작하는게 아닌 멀티로 여러개의 프로그램을 동시에 제어할 수 있습니다. 다양한 방법들이 존재하지만, 가장 많이 사용하는 방식은 비활성 모드를 이용하는 겁니다. 엔지엠 매크로에는 제어하는 프로그램 종류에 따라 다양한 방식을 사용할 수 있습니다. 웹 업무 자동화의 경우에는 [ 웹 API ], [ 크로미움 API ], [ 웹소켓 API ]를 사용할 수 있습니다.

     

    모바일 게임이나 안드로이드폰 앱을 테스트할 때는 [ ADB API ]를 사용합니다. 안드로이드 스마트폰을 다수 연결해서 작업하는 경우에는 이 방법이 가장 안정적이고 효율이 좋습니다. 이외에 대부분의 윈도우 프로그램들은 윈도우 API를 사용해서 매크로를 제작합니다. 오늘 알아볼 내용은 윈도우 API를 사용해서 멀티 다클라 매크로 프로그램을 어떻게 만들어야 하는지에 대해 알아볼텐데요. 추가적으로 주의할점은 아래 글도 한번 참고해보시면 이 내용을 이해하는데 도움이 될 수 있습니다.

    하드웨어 다클라 매크로를 제작할 때 주의할 점 ]

    비활성 다클라 매크로를 제작할 때 주의할 점 ]

     

    활성 모드에서 멀티 다클라를 어떻게 제작하는지 확인하기 위해 아래와 같이 그림판을 2개 실행했습니다. 그리고, 엔지엠 매크로 에디터에는 [ 이미지 매치 ] 하나를 추가하세요.

    dMkymcJ.jpg

     

     

    이미지 매치에서 첫번째 그림판의 오랜지색 점을 캡쳐한 후 찾기 영역도 설정하세요.

    2WQCfyL.jpg

     

     

    이미지를 찾으면 오랜지색 점으로 마우스가 이동하도록 설정해줬습니다. 

    CL2Uq8y.jpg

     

     

    매크로를 실행하면 첫번째 그림판의 오랜지색 점을 찾아서 마우스가 이동합니다.

     

     

    이렇게 하나의 업무 자동화 오토 프로그램을 하나 완성했다고 생각해보세요. 두번째 그림판과 같이 자동화 할 프로그램이 바둑판 배열로 쭉 나열되어 있다는 가정입니다. 이 테스트에서는 그림판 2개로 설명하고 있지만, 실제 사용자의 환경에서는 구글 크롬이나 엣지 또는 녹스나 엘디플레이어와 같은 프로그램들이 10개나 20개 켜져 있을겁니다. 항상 왼쪽 첫번째를 기준으로 자동화 매크로 프로그램을 완성해야 합니다. 이제 새로운 스크립트를 추가하고, 첫번째 이미지 매치를 복사해서 붙여넣기 해보세요.

     

     

    매크로를 실행 해보세요. 당연하지만 첫번째 그림판의 오랜지색 점으로 마우스가 이동합니다. 그러면, 2번째 프로그램에 동일하게 매크로가 동작하려면 어떻게 해야 할까요? 창만 위치가 다를뿐인데 새로운 스크립트를 동일하게 만드는건 시간 낭비입니다. 아래와 같이 [ 오프셋 추가 ] 액션을 이미지 매치 액션 위에 추가하세요.

    4WVawBH.jpg

     

     

    두번째 그림판의 X 위치는 잘 모르지만, Y 위치는 0이라는걸 알 수 있습니다. X 좌표에 얼마를 입력해야 할지 알기가 어려운데요. 이 때에는 [ 프로그램 정보 ] 액션을 사용하면 됩니다.

     

     

    X 축을 500만큼 이동하면 두번째 그림판(프로그램)에서 동일하게 작동하게 할 수 있습니다. 아래 동영상처럼 테스트 해보세요.

     

     

    이런식으로 매크로를 작성하면 하나의 스크립트를 완성해서 자동화 할 프로그램 수만큼 복사한 후 각각 오프셋으로 X축과 Y축을 시프트시켜서 사용하면 됩니다. 하지만, 여기에는 문제점이 하나 있는데요. 비활성(핸들, 웹 API, ADB) 모드는 문제가 안되지만, 활성 모드와 하드웨어 모드는 동시에 실행하는 경우 마우스와 키보드 동작이 꼬일 수 있습니다. 활성 모드와 하드웨어 모드는 마우스 1개와 키보드 1개만 사용이 가능합니다. 비활성 모드는 각각의 프로그램에 마우스 1개, 키보드 1개가 할당되기 때문에 문제가 되지 않습니다.

     

    활성 모드에서 문제가 되는 이유는 1개의 마우스로 여러개가 동시에 실행될 때 마우스 다운과 업이 꼬일 수 있기 때문입니다. 아주 빠른 속도로 매크로가 동작하지만, 1번 그림판에서 마우스를 누르고 때기 전 2번 그림판에서 마우스를 누르고 때면 1번에서 누른 상태이기 때문에 클릭이 아닌 드래그가 발생할 수 있습니다. 이는 키보드도 동일한 문제점을 가지고 있습니다. 그래서 마우스 다운과 업 그리고, 키보드 다운과 업은 한쌍으로 묶어서 처리하도록 해야 합니다. 이 때 사용하는 액션이 [ 묶음 처리 ]입니다.

     

    멀티 다클라 환경에서는 여러가지 다양하게 고려해야 할 상황들이 많이 발생합니다. 프로그램간 간섭이 없어야 하고, 독립적으로 자신의 프로그램만 제어하도록 보장해야 합니다. 일반적으로 개발자들도 멀티 스레딩이나 패러럴 프로그래밍은 어려워하는 편입니다. 또한, 개발했다고 해도 문제점을 찾기가 쉽지 않기 때문입니다. 그렇다보니 개발자가 아닌 일반인이 엔지엠 매크로와 같은 도구를 사용하더라도 멀티 다클라 매크로 프로그램 제작은 쉬운 작업이 아닙니다. 여러번의 시행착오를 거치겠지만, 여유를 가지고 하나씩 테스트 하다보면 성공적인 결과를 만들어 낼 수 있을겁니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.