NGMsoftware

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

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

    팁 앤 테크

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

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

    에디터 멀티 다클라에서 마우스 키보드가 겹치는 문제 해결 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 멀티 다클라 매크로를 제작할 때 비활성 모드(핸들 추가, 웹 API, 안드로이드)가 아닌 활성 모드(윈도우 API, 클래스디디, 인터셉션, 아두이노)를 사용할 때 마우스와 키보드가 겹치거나 꼬이는 문제가 발생할 수 있습니다. 여러 매크로 스크립트를 실행하다보면 각각의 스크립트의 동작들이 동기적으로 실행될 수 없습니다. 이런 경우에는 [ 묶음 처리 ]를 사용해서 여러 매크로에서 마우스와 키보드가 섞이지 않도록 해야 합니다.

     

    프로그래밍 경험이 있다면 크리티컬 섹션(Critical Section)이나 세마포어(Semaphore) 또는 뮤텍스(Mutex)를 들어 보셨을겁니다. 웹프로그래머라면 어싱크(async), 어웨이트(await)와 동일하다고 생각하시면 됩니다. 매크로 프로그램에서 사용하는 묶음 처리 액션이 이런 개념과 동일한 내용입니다. 이해를 돕기 위해 간단한 예를 만들어 보겠습니다. 엔지엠 매크로 에디터를 실행하고, 새로운 스크립트를 하나 추가하세요.

    cnOuw3h.gif

     

     

    아래와 같이 2개의 스크립트를 추가 했습니다. 묶음 처리 시작묶음 처리 종료 액션은 테스트를 위해 일단 사용 안함으로 해두었습니다. 1번 매크로는 메모장 1번을 클릭하고 숫자 123456789를 입력합니다. 2번 매크로는 메모장 2번을 클릭하고 영어 abcdefg를 입력합니다.

    I3Kuna3.jpg

     

     

    위의 두 매크로 스크립트를 동시에 실행하면 어떻게 될까요? 두 매크로가 동시에 실행되기 때문에 키보드 입력은 섞여서 출력될겁니다. 아래와 같이 메모장을 2개 실행 해주세요.

    7TfShwE.jpg

     

     

    메모장에 텍스트를 입력하려면 포커스가 있어야 합니다. 그래서, 마우스 클릭 액션이 각각 하나씩 추가되어 있습니다. 클릭 좌표는 각각 메모장입니다. 매크로를 실행하세요.

     

     

    매크로 2개가 동시에 실행되기 때문에 위의 동영상처럼 첫번째 메모장을 클릭하고 텍스트를 입력합니다. 아래에 있는 두번째 메모장에는 abcdefg가 입력되어야 하는데요. 동시에 실행되다보니 첫번째 메모장에 입력되는 문제가 발생했습니다. 그리고, "a1bc2d3e45f6789"와 같이 숫자와 영어가 섞이게 됩니다.

     

    이번에는 스크립트 둘다 묶음 처리사용 함으로 변경하고 실행 해보세요.

     

     

    이번에는 의도한대로 첫번째 메모장에는 123456789가 입력되고, 두번째 메모장에는 abcdefg가 입력되었습니다. 이 예제에서는 스크립트 내용 전체가 묶여 있지만, 실제로 더 복잡한 매크로에서는 특정 영역만 독점구간으로 설정해서 사용해야 합니다. 예를 들어서 1번 창에서 어떤 판단 조건에 따라 응답해야 하고, 2번 창에서 어떤 판단 조건에 따라서 응답해야 할 수 있습니다. 이 때 판단 조건은 동시에 실행되어 감지하더라도 입력 수행은 독립 실행되어야 합니다.

     

    이번에는 비활성 모드에서 실행 해볼께요. 각각의 스크립트에 [ 핸들 추가 ] 액션을 상단에 추가하세요. 그리고, 아래 동영상처럼 각각의 메모장을 스크립트에 각각 설정하세요.

     

     

    매크로를 다시 실행 해보세요. 활성 매크로처럼 각각 하나씩 입력되는게 아닌 동시에 2개의 매크로가 동작합니다. 그리고, 마우스와 키보드가 꼬이지 않고 정상적으로 입력되는걸 확인할 수 있습니다. 아무래도 활성 매크로보다 비활성 매크로가 성능면에서 월등하게 좋습니다. 엔지엠 매크로는 비활성 매크로를 제작할 수 있는 다양한 방법들을 제공하고 있는데요. 업무 종류에 맞게 선택적으로 사용할 수 있습니다. 범용 윈도우 업무나 게임, 웹 업무, 엑셀 및 구글 시트 그리고, 안드로이드 모바일 게임등등... 다양합니다.

     

     

    웹업무에 대한 내용도 다양하게 구현할 수 있습니다. 예를들어 선착순이나 예약, 예매, 티켓등등... 하나만 실행하는 것보다 동시에 여러개가 동작하면 훨씬 더 효율적이고 응모에 당첨될 확률이 몇배나 더 높아집니다. 선착순이 아니더라도 동시에 여러개의 웹브라우저르를 제어할수도 있는데요. 자세한 내용은 아래 글을 참고해보세요.

    크롬 또는 엣지 웹브라우저를 동시에 멀티로 제어하는 방법 ]

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.