NGMsoftware

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

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

    팁 앤 테크

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

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

    스크립트 기초부터 하나씩! - 키보드 사용하기.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 이 글은 매크로 자동화에 필수 요소중에 하나인~ 키보드 액션에 대해 설명합니다. 마우스 액션에 대해 학습하려면 [ 여기 ]를 읽어보세요. 테스트를 위해 메모장을 실행하고, 아래 그림과 같이 에디터에서 새 스크립트(Ctrl+N)를 추가하세요. 그리고 키보드 입력 액션을 스크립트에 추가 해주세요.

    wUpS5iD.png

     

     

    아래 그림과 같이 "키 코드" 속성에 "A"를 입력하세요.

    kK7VJIk.png

     

     

    실행 버튼을 클릭하거나 단축키 "Ctrl+Alt+F8" 눌러보세요. 아래 동영상처럼 아무런 반응이 없습니다.

    1t6Swqb.gif

     

     

    왜 이런 결과가 나오는걸까요? 키보드는 마우스와 다르게 비주얼적으로 확인할 수 있는게 없습니다. 마우스 포인터처럼 움직이는게 없다는 뜻이죠. 텍스트가 입력되어야만 동작을 확인할 수 있습니다. 또 한가지 중요한점은 텍스트를 입력받을 Input 컨트롤이 존재해야 한다는 겁니다. 대표적인 프로그램이 메모장(Notepad)입니다. 테스트를 위해서 약간의 지연 시간을 주고 키보드 액션이 동작하기 전에 메모장을 직접 클릭해서 활성화 시켜보세요.

    LVWGuFc.gif

     

     

    메모장에 "a" 문자가 입력된걸 알 수 있습니다. 좀 더 자세하게 풀어서 설명하면 키보드의 A키를 누르기전에 지연 시간 1,000밀리초가 먼저 동작합니다. 1,000밀리초는 1초와 같습니다. 1초안에 직접 메모장을 클릭해서 선택하고 키보드 액션이 실행됩니다. 메모장에 "a"가 입력됩니다. 매크로는 사람이 행동하는 것과 동일하게 작동됩니다. 내가 키보드 입력할 프로그램을 선택하고 키보드 작업을 하듯이 매크로도 프로그램을 선택(활성화)하고, 키보드 동작을 수행해야 합니다. 이해가 가시나요? 그러면 "A"와 같은 대문자를 입력하려면 어떻게 해야 할까요? 아래 동영상처럼 시프트키를 누르면 됩니다^^;

    aJp29Wd.gif

     

     

    윈도우 키를 누르고 싶으면 아래와 같이 동작시키면 됩니다. 조합키 또는 스페셜키는 단독으로 사용할 수 있으며, 꼭 프로그램을 활성화하지 않아도 동작할 수 있습니다. 일부 스페셜키들은 적용할 프로그램이 선택(활성화)되어 있어야 정상 동작할수도 있습니다. 모든 프로그램이 동일하게 명령을 받아들이고 수행하는건 아닙니다.

    uNPxNiA.gif

     

     

    키보드를 여러가지 방법으로 제어할 수 있는데요. 키보드 입력이나 키보드 다운과 업으로 원하는 텍스트를 하나씩 입력해서 만들 수 있습니다. 하지만, 문자열이 많아질수록 스크립트에 추가해야 하는 키보드 액션이 많아지게 됩니다. 그리고, 수정 및 유지보수에도 어려움이 따르게 되죠. 그래서, 한번에 텍스트를 입력할 수 있는 기능을 제공하고 있습니다. 아래와 같이 텍스트 쓰기 액션을 추가하고, 속성을 설정 해보세요. 텍스트에 "안녕하세요. 엔지엠소프트웨어입니다."를 추가했습니다.

    jcREO8q.png

     

     

    이 액션도 동일하게 지연 시간을 주고, 메모장을 클릭해서 활성화해야 합니다.

    i9i4ldO.gif

     

     

    소프트웨어 방식이라서 아주 빠르게 텍스트가 입력되는걸 확인할 수 있습니다. 좀 더 타이핑하는것처럼 동작시키려면 아래 옵션에 적절한 값을 넣어주세요.

    vmOnhkA.gif

     

     

    한글과 영어를 섞어서 사용해볼까요? 아래 그림과 같이 텍스트 속성의 내용을 "안녕하세요. NGMsoftware입니다."로 변경해주세요.

    U3tfq2X.png

     

     

    대부분의 텍스트 인풋 컨트롤들은 독립적으로 IME 정보를 가집니다. 메모장도 마찬가지죠. IME 모드는 현재 입력 상태가 한글인지 영어인지를 나타내는 정보입니다. OS가 중국 또는 일본의 경우에는 한자와 일본어 입력 상태를 가질 수 있습니다. 아무튼, 윈도우즈가 한국어 버전이기 때문에 한영 상태를 가지겠죠. NGM은 대부분의 IME 모드를 자동으로 감지하여 변환해줍니다. 한글과 영어가 정상적으로 입력되는걸 확인할 수 있습니다.

    HbNuhdf.gif

     

     

    MS 워드에서 텍스트를 타이핑하는 예제를 만들어 볼까요? 엔지엠 매크로를 홍보하기 위해 작성한 글을 입력해볼께요.

    WfW2zNi.gif

     

     

    여기까지 윈도우 프로그램에 텍스트를 입력하는 방법에 대해 알아보았습니다. 엔지엠 매크로는 다른 매크로들과 다르게 텍스트를 입력하는 기능뿐만 아니라 텍스트 인풋 컨트롤의 텍스트를 읽어올수도 있습니다. OCR과 차이점이 존재하는데요. OCR은 문자 판독 기능으로 이미지에서 딥러닝으로 학습된 모델을 이용해서 글자를 추출하는 기능합니다. 그렇기 때문에 학습 모델에 따라 인식률에 차이가 발생할 수 있고, 이런 오차로 인해 완벽한 매크로를 만드는데 어려움이 존재합니다. 하지만, 텍스트 읽기 액션은 100% 정확하게 문자를 읽어옴으로써 완벽한 자동화 매크로를 만들 수 있게 해줍니다. 사용에 제약이 따르지만요^^; 테스트를 위해 메모장에 아래와 같은 텍스트를 미리 입력 해두었습니다.

    VBiqwwn.png

     

     

    에디터는 아래 그림을 참고해서 속성들을 설정 해주세요.

    jvnu3KN.gif

     

     

    실행(Ctrl+Alt+F8) 해보면 텍스트를 텍스트를 정상적으로 읽어온것을 확인할 수 있습니다. 아직 다루지 않은 변수를 이용해야 파워풀한 매크로를 만들 수 있지만, 이런 기능도 있다는 것을 미리 알고 있으면 나중에 도움이 될것입니다. 메뉴얼을 정독하느냐 안하느냐는 스크립트를 개발할 때 품질에 매우 큰 영향을 줍니다. 이런 기능이 있다는 것을 몰라도 비슷하게 만들 수 있으니까요. 결국은 효율에 대한 차이가 발생할 수 밖에 없습니다.

    YT15Q7W.gif

     

     

    혹시라도 기능적으로 궁금한 사항이나 예제를 동일하게 따라해도 동작되지 않는다면 댓글로 남겨주세요^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    profile_image

    토뮤리얼님의 댓글

    no_profile 토뮤리얼 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 Date

    다시 기초부터 올라오는 글 너무 좋네요 제 지인한테 보여주면서 알려줄 수 있겠네요

    profile_image

    엔지엠소프트웨어님의 댓글

    엔지엠소프트웨어 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일 Date

    네 천천히 하나씩 추가할 수 있도록 하겠습니다.
    사용자분들도 정보 공유에 같이 동참하면 좋겠네요^^;