NGMsoftware

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

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

    팁 앤 테크

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

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

    에디터 비활성 매크로의 마우스 중복 입력 방지 옵션 설명.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 매크로를 만들다보면 상황에 따라 활성 모드 또는 비활성 모드를 사용해야 합니다. 그리고, 서브 스크립트를 동기 또는 비동기로 사용하기도 합니다. 오늘 알아볼 내용은 비동기 서브 스크립트를 사용할 때 마우스 클릭 동작이 꼬이지 않도록 하는 방법입니다. 내용은 간단할거 같지만 내부적으로는 복잡합니다^^; 우선, 비동기 서브 스크립트를 하나 만들어야 하는데요. 아래와 같이 간단하게 작성해줍니다.

    ※ 필독 - [ 비활성 다클라 매크로를 만들 때 주의사항 ]

    ipBnxs9.gif

     

     

    매인 스크립트에서 [ 서브 스크립트 ]를 비동기 설정 해줍니다. 핸들은 일단 설정하지 않았습니다.

    XurvbXp.png

     

     

    [ 마우스 업 ] 액션에는 실행 전 지연에 3000(3초)을 입력 해줍니다.

    XKcBFdJ.png

     

     

    이 스크립트의 시나리오는 이렇습니다. 매인 스크립트에서 마우스 다운이 실행되고, 서브 스크립트가 실행됩니다. 이 때 마우스 다운과 업이 발생하고, 다시 매인 스크립트에서 마우스 업이 발생합니다. 매인과 서브 스크립트의 마우스 동작 위치는 그림판의 좌상(매인)과 좌하(서브)입니다. 일단 동작을 확인 해볼까요? 매인 스크립트의 좌상에서 마우스 다운이 발생하고, 서브 스크립트의 우하단에서 마우스 다운이 발생했습니다. 그리고, 마우스 업이 입력되고, 마지막으로 매인 스크립트의 마우스 업이 좌상단에서 발생했습니다.

    SywgVqT.gif

     

     

    이렇게 비동기로 동작하는 경우 또는 여러 스크립트를 동시에 실행하는 경우 마우스 다운이 중복해서 발생할 수 있습니다. 위 예제는 의도적으로 만들었기 때문에 문제점이 무엇인지 명확하지만, 어쩌다가 중복이 발생되면 문제가 되는 원인을 찾기가 상당히 어려울겁니다. 비동기로 실행되는 환경에서는 이런 부분들을 신경써서 작성해야 합니다. 이번에는 마우스 중복 입력 방지를 설정하고 다시 실행 해보겠습니다.

    nseAySv.gif

     

     

    차이점을 확인하셨나요? 옵션에서 마우스 중복 입력 방지(대기)를 사용하면 마우스 다운중인 경우에 다른 마우스 다운이 발생하면 마우스가 업 될 때까지 대기하게 됩니다. 그래서 매인의 마우스 다운, 업 후 서브 스크립트의 마우스 다운과 업이 수행된것입니다. 스크립트는 비동기이지만 마우스는 동기적으로 처리된다는걸 알 수 있습니다. 만약, 옵션에서 마우스 중복 입력 방지(건너뛰기)를 선택하면 마우스 입력이 무시되고, 스크립트가 진행됩니다.

    1wUKJPm.png

     

     

    매인에서 좌상단에 마우스 다운이 발생하고, 서브 스크립트의 마우스 다운은 건너뛰었습니다. 그리고, 마우스 업이 발생했습니다. 그래서, 아래 동영상처럼 좌상단에서 우하단으로 드래그한것과 같이 동작했습니다. 마지막 매인의 마우스 업도 실행되지 않았습니다. 마우스 다운이 없기 때문에 건너뛰게 된것입니다.

    GQOqOc1.gif

     

     

    다시 옵션에서 마우스 중복 입력 방지(대기)로 변경한 후 비활성 모드로 실행 해보도록 하겠습니다. [ 핸들 추가 ] 액션을 체크하세요.

    5pIOEUq.gif

     

     

    핸들 추가로 비활성 모드입니다. 활성 모드와 동작이 다르지는 않지만, 실제로 마우스가 이동하지 않고 클릭이 발생합니다.

    m70pUv7.gif

     

     

    간단하게 비동기 매크로에서 마우스만 동기화 하는 방법에 대해 알아보았습니다. 대부분은 동기 모드로 사용할겁니다. 스크립트가 동기화된 상태(일반적인 상황)라면 마우스와 키보드도 동기적으로 움직입니다. 1부터 10까지 액션이 순차적으로 흐르기 때문입니다. 하지만, 비동기 모드에서는 순차적으로 프로세스가 흐르지 않기 때문에 마우스 동작이 꼬이거나 다운, 다운, 다운과 같이 여러번 수행하고 좌표도 제각각일 수 있습니다. 이런 경우에는 문제를 파악하는데 많은 시간을 소비하므로 가급적이면 충분히 로직을 생각하고 검증한 후 매크로를 제작하는게 좋습니다. 안그러면 잦은 시행착오로 같은 스크립트를 여러번 만들어야 하니까요^^;

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.