NGMsoftware

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

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

    팁 앤 테크

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

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

    스크립트 기초부터 하나씩! - 비활성 키보드 사용하기. (텍스트 읽기)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 비활성 마우스 클릭에 대한 내용은 [ 여기 ]에서 확인할 수 있습니다. 키보드에 대한 기본적인 내용은 [ 여기 ]를 참고하세요. 마우스 예제와는 다르게 키보드는 메모장에서 테스트해야 합니다. 당연한 말이죠. 엔지엠 에디터를 실행한 후 스크립트를 하나 추가(Ctrl+Alt+F8) 해주세요.

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

    TVTiuhm.png

     

     

    활성 모드는 윈도우에 키보드를 입력하라는 신호를 주는 방식입니다. 하지만, 비활성 모드는 윈도우가 아닌 키보드 입력을 발생할 프로그램에 신호를 주는 방식이죠. 그렇다면, 키보드 입력이 발생할 프로그램을 매크로(NGM)에게 알려줘야겠죠? 어떤 프로그램에 신호를 줄지 알려주는 액션이 핸들 추가 액션입니다. 아래 그림처럼 도구 상자의 응용 프로그램 > 핸들 추가 액션을 추가해주세요.

    28cKTkw.png

     

     

    테스트를 위해 메모장을 실행하고, 아래와 같이 설정해주세요. 메모장이 선택되면 F1을 눌러서 완료해주세요.

    V7m4Hpo.gif

     

     

    이후에는 키보드 예제와 동일합니다. 핸들을 추가한 이후에 액션들은 메모장에 키보드 또는 마우스 신호를 주게됩니다. 아래 동영상을 참고해서 설정 후 실행 해보세요.

    Fj1fi6a.gif

     

     

    활성 모드와는 다르게 메모장에 텍스트 입력이 안됩니다. [ 비활성 마우스 클릭하기 ] 예제를 읽고 오신 분들은 PostMessage와 SendMessage에 대해 읽어 보셨을겁니다. 여기서 따로 다시 설명하지는 않고, 비활성 마우스 클릭에서 설명한 내용을 참고해주세요. 정상적인 동작을 확인하기 위해 아래 그림과 같이 "비활성 모드" 속성을 "SendMessage"로 변경하세요.

    AU7a3pv.png

     

     

    다시 실행 해보세요. 메모장에 "안녕하세요. 엔지엠소프트웨어입니다." 텍스트가 입력됩니다.

    swCYVUM.gif

     

     

    활성 모드에서 키보드 입력하는것과 차이점이 뭘까요? 활성 모드에서는 키보드가 윈도우에 명령을 내리기 때문에 입력 받을 메모장 또는 프로그램이 활성 상태여야 합니다. 그래서 1초 지연을 주고, 사용자가 직접 메모장을 클릭해서 활성 상태로 만들었습니다. 하지만, 비활성 모드는 메모장 프로그램에 키보드 입력 신호를 주기 때문에 메모장을 클릭할 필요가 없습니다. 워드나 엑셀과 같은 다른 프로그램에서 테스트 해봅시다. 워드패드도 정상 동작합니다.

    wNyFnf6.gif

     

     

    비활성 모드를 핸들로 제어하지 않고 활성 모드로 입력되게 하려면 어떻게 해야 할까요? 마우스와 키보드는 핸들에서 벗어나 활성 모드로 동작하도록 "활성 모드" 옵션이 존재합니다. 아래와 같이 "활성 모드"를 True로 변경하고, 차이점을 확인하기 위해 "실행 전 지연"과 "키보드 입력 지연"에 1000과 50을 입력하고 다시 실행 해보세요. 수동으로 메모장을 클릭해야 합니다.

    8mpZdjg.png

     

     

    직접 타이핑하는 것처럼 텍스트가 입력되는걸 알 수 있습니다.

    sSSCggM.gif

     

     

    키보드 기능중에 비활성 모드에서만 사용할 수 있는 "텍스트 읽기"에 대해 알아볼까요? 아래 그림과 같이 "텍스트 쓰기"는 삭제하고 "텍스트 읽기"를 추가하세요. 그리고 "비활성 모드"를 "SendMessage"로 변경하세요.

    4AYY8KE.png

     

     

    실행(Ctrl+Alt+F8) 해보면 메모장에 있던 내용을 "텍스트" 속성에 가져온것을 알 수 있습니다.

    IkONrv1.gif

     

     

    텍스트 읽기는 핸들 추가 액션이 없어도 독립적으로 실행되도록 만들어져 있습니다. 자체적으로 핸들을 설정할 수 있기 때문인데요. 아래와 같이 핸들 추가 액션을 체크 해제하고, 텍스트 읽기에서 직접 핸들을 추가해보세요. 그리고, 실행해보면 동일하게 동작되는걸 확인할 수 있습니다.

    dCZRWV6.gif

     

     

    엔지엠에는 사용 편의성을 위해 일부 액션에는 확장 옵션들이 추가되어 있습니다. 대표적으로 이미지 조건들에 마우스 동작이 포함된거죠. 이외에도 이미지 저장 옵션이나 핸들 처리등등 쉽게 매크로를 제작할 수 있는 환경을 제공합니다. 다시 본론으로 돌아가서 텍스트 쓰기는 매크로가 다른 프로그램에 키보드 입력을 수행하기 때문에 어디에 어떻게 사용해야 할지 쉽게 알 수 있을겁니다. 하지만, 텍스트 읽기는 어디에 사용해야 할까요? 변수에 대해 아직 학습하지 않았기 때문에 현재로써는 어디에 어떻게 사용할지 감이 오지 않을겁니다. 추후에 변수를 학습할 때 다시한번 자세하게 알아보도록 하겠습니다. 아하~! 혹시라도 미리 학습하고 싶으신 분들은 해당 액션에서 우클릭 후"설명서 보기"를 클릭해보세요.

    Hu5tGtC.png

     

     

    키보드를 연속해서 입력하려면 어떻게 해야 할가요? 연속 입력이란 A키를 꾹 누르고 있는 동작을 말합니다. 키보드의 A키를 누르고 있으면 연속해서 입력되는데요. 이 동작을 윈도우 입장에서 메시지를 덤프 떠보면 아래와 같이 윈도우 메시지가 입력되는걸 알 수 있습니다.

    Key Down > Key Press > Key Press > Key Press > Key Press > Key Up

     

    하드웨어 방식으로 구현하는건 쉽지만 소프트웨어 방식은 직접  구성해야 합니다. 아래와 같이 만들어보세요.

    oABHbQi.gif

     

     

    핸들을 추가하면 지연 없이 입력됩니다. 물론, 메모장을 클릭할 필요도 없죠^^;

    ymjtXOc.gif

     

     

    비활성은 메모장이 활성 상태가 아니더라도 텍스트가 입력됩니다. 그림판으로 메모장을 가린 후 실행해볼까요?

    X9aDIcY.gif

     

     

    활성 모드에서는 할 수 없는 동작입니다. 비활성의 장점이죠^^; 마우스도 비활성 모드에서는 프로그램이 가려지거나 제어할 프로그램의 위치가 바뀌더라도 동일한 위치를 클릭합니다. 이는 제어할 프로그램에 직접 메시지를 전달하기 때문에 가능한 일입니다. 그렇기 때문에 활성 모드나 하드웨어 모드에서는 이렇게 동작시킬 수 없습니다. 비활성 매크로만의 장점이거든요.

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.