NGMsoftware

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

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

    팁 앤 테크

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

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

    에디터 매크로 프로그램에서 마우스와 키보드의 다운 상태를 확인하고, 업 시키는 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 매크로 프로그램에서 마우스와 키보드 입력은 다운과 업으로 이루어져 있습니다. 실제로 [ 마우스 클릭 ]과 같은 동작은 [ 마우스 다운 ]과 [ 마우스 업 ]의 2단계로 실행됩니다. 키보드도 동일합니다. 키보드의 키를 눌렀다가 때는 동작이 입력입니다. 물리적인 키보드는 사람이 직접 마우스와 키보드를 눌렀다가 때는 동작을 하기 때문에 문제가 되지 않습니다. 하지만, 매크로 프로그램과 같은 RPA 솔루션들은 마우스나 키보드가 다운 상태에서 종료되거나 일시 중지를 하게 되면 입력된 상태로 유지됩니다.

     

    마우스의 경우 마우스가 눌린 상태로 매크로가 중지되도 크게 문제가 되지는 않습니다. 마우스를 한번 클릭하면 다운 상태가 해제됩니다. 그런데 키보드는 눌린 상태에서 매크로가 중지되면 계속해서 입력이 발생합니다. 그래서, 현재 눌려진 마우스 버튼(Left, Right, Middle) 또는 키보드의 키를 업 상태로 만들어줘야 합니다. 간단하게 아래와 같이 테스트를 진행 해보도록 하겠습니다. 엔지엠 매크로 에디터를 실행하고, 새로운 스크립트를 추가하세요.

    cnOuw3h.gif

     

     

    스크립트는 아래 그림과 같이 단순합니다. 첫번째 클릭 액션은 키보드 입력이 발생할 메모장을 클릭합니다. 활성 모드에서는 키보드 입력을 받을 프로그램(메모장등등...)이 활성 상태여야 하기 때문입니다. 두번째 키 다운은 N키를 누르도록 설정 해두었습니다. 그리고, [ 키보드 상태 체크 ]는 현재 눌려진 키와 설정한 키가 같으면 True를 반환합니다. 마지막으로 키 업 액션으로 현재 눌려진 키를 업시켜주세요.

    X4tC0FT.png

     

     

    스크립트를 실행 해보면, 메모장에 키다운이 발생해서 n이 찍힙니다. 그리고, 현재 N이 키 다운 상태인지 체크하는데요. 하단의 아웃풋을 보면, True로 키가 눌려진 상태라고 알려줍니다.

    JiEHkOV.gif

     

     

    키보드 상태 체크키 업 아래로 이동시킨 후 다시 실행 해보세요. 이번에는 비교 결과가 False로 나옵니다. 당연한 이야기겠지만, 상태를 체크하기 전 키 업이 되었기 때문입니다.

    vn64aoS.gif

     

     

    여기까지는 소프트웨어 방식의 매크로 입력이었습니다. 그래서, 키 업 액션의 실행 전 지연 속성을 5000(5초)으로 설정해도 키 입력은 한번만 입력됩니다. 이 차이점을 알기 위해 여러분들은 메모장을 클릭하고 N키를 약 5초간 누르고 있다가 때 보세요. 매크로 프로그램과는 다르게 동작되는걸 확인할 수 있을겁니다.

    dkUBeWu.png

     

     

    자~ 이번에는 실제 마우스, 키보드와 같이 동작하는 기계식(하드웨어) 매크로를 테스트 해보도록 하겠습니다. 아래 그림과 같이 시리얼 통신의 [ 연결 ] 액션을 가장 위에 추가하세요.

    oAgj2fF.png

     

     

    연결 액션의 속성을 아래 그림과 같이 설정 해줍니다. 이동 거리는 30이고, 이동 속도는 1입니다. 그리고, 시리얼 포트는 COM3을 선택 했습니다. 시리얼 포트는 사용자마다 다를 수 있습니다. 아두이노 시리얼 포트는 아래 글을 참고해서 설정하세요.

    [ 아두이노 시리얼 포트 찾는 방법 ]

    3T99b4H.png

     

     

    스크립트를 실행하면, 메모장에 5초동안 키보드를 누른것과 동일한 효과가 발생합니다. 물리적인 키보드와 동일한 신호이기 때문입니다.

    r4R7PZs.gif

     

     

    여기서, 마우스 다운 이후에 업이 되기전 매크로를 중지했다고 생각 해봅시다. 그러면, 키보드 입력이 무한으로 발생해서 멈출수가 없습니다. 이런 경우에는 아두이노를 컴퓨터에서 분리해야 합니다. 그래서, 키보드 상태 체크 액션으로 키보드가 눌려 있는지 확인하고 업 상태로 만들어줘야 합니다. 키보드 상태 체크 액션을 키 업 위로 올리고, 속성에서 키보드 릴리즈True로 변경하세요. 그리고, 키 업 액션을 삭제 해줍니다.

    q5UShNe.png

     

     

    키 업 액션이 없더라도 현재 눌린 키를 자동으로 업 시켜줍니다.

    qj5PkZA.gif

     

     

    참고로, 에디터 및 플레이어 옵션에서 스크립트가 중지되거나 일시중지시에도 마우스와 키보드를 자동으로 릴리즈 할 수 있는 옵션이 추가 되었습니다.

    I2C4DwR.png

     

     

    이 글이 도움이 되셨다면~ 커피 한잔이라도 후원 부탁드립니다^^

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.