NGMsoftware

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

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

    팁 앤 테크

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

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

    스크립트 기초부터 하나씩! - 비활성 마우스 클릭하기.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 오늘은 많은 분들이 질문했던 비활성으로 마우스를 클릭하는 방법에 대해 알아보도록 하겠습니다. 현존하는 매크로 프로그램들중에 활성 모드, 비활성 모드, 하드웨어 모드(클래스디디, 아두이노), 하이브리드 모드를 지원하는 매크로는 엔지엠 매크로가 유일합니다. 그래서, 마우스 클릭하나라도 여러 방법으로 사용할 수 있고 문제 상황에 대응이 가능합니다. 앞서 [ 활성 모드로 마우스 클릭하기 ]는 배웠으므로 오늘은 비활성 클릭에 대해 알아보고, 다음 시간에는 하드웨어 방식으로 제어하는 법을 알아보도록 하겠습니다. 엔지엠 에디터를 실행하고 스크립트를 하나 추가(Ctrl+N)하세요.

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

    TVTiuhm.png

     

     

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

    28cKTkw.png

     

     

    테스트를 위해 그림판을 실행하고, 아래와 같이 설정해주세요. 마우스 클릭이 시각적으로 잘 보이게 하려고 크기와 색상을 변경해줬습니다.

    dWRw9VK.gif

     

     

    비활성으로 그림판에 마우스 클릭을 수행할건데요. 그러기 위해서 그림판을 핸들로 추가해줍니다. F1을 누르면 선택이 완료됩니다.

    MFJG9Zm.gif

     

     

    이제 스크립트에 추가하는 마우스 또는 키보드 액션들은 그림판에만 신호를 주게됩니다. 마우스를 하나 추가하고, 클릭 위치를 설정 해주세요. 마우스 클릭은 [ 여기 ]를 참고하시면 됩니다. 아래 동영상을 참고해서 마우스 클릭을 추가하고 그림판 중앙쯤에 위치시킨 후 F1을 눌러서 작업을 완료하세요.

    DunlIbX.gif

     

     

    실행(Ctrl+Alt+F8)하면 마우스는 그대로인데 그림판에는 클릭이 발생한것을 알 수 있습니다.

    wOaHJXt.gif

     

     

    핸들 추가 액션에 체크를 끄고 다시 실행 해보세요. 활성 모드로 동작하게 됩니다. 이번에는 마우스가 이동되는걸 알 수 있죠.

    4flT32t.gif

     

     

    활성 모드와 비활성 모드는 핸들의 존재 여부에 따라 동작 방식이 결정됩니다. 여기서 주의할점은 비활성 모드가 모든 프로그램에 다 동작하는건 아니라는 점입니다. 일부 프로그램 또는 게임의 경우 소프트웨어 신호를 막는 경우가 있습니다. 비활성 모드로 몇번 테스트 해보고 동작하지 않는다면 아래와 같이 비활성 모드SendMessage로 변경하고 해보세요.

    LJQ42so.png

     

     

    비활성 모드는 PostMessage와 SendMessage 2종류의 윈도우 명령을 제공합니다. 활성 매크로와 비활성 매크로의 차이점은 [ 여기 ] 동영상을 봐주세요. 비활성 모드의 기본값인 PostMessage는 비동기 모드고 SendMessage는 동기 모드입니다. 개발자라면 동기와 비동기에 대해 알고 있을텐데요. 일반인분들은 잘 모를겁니다.

    • PostMessage: 비동기 모드로 메시지큐에 명령을 넣어놓고 다음 작업을 수행합니다. 그렇기 때문에 명령이 정상적으로 처리되지 않고 건너뛸수도 있습니다.
    • SendMessage: 동기 모드로 메시지큐를 사용하지 않고, 윈도우가 바로 처리한후 결과를 반환합니다. 메시지 처리에 문제가 발생하면 프로그램이 멈출수도 있습니다.

     

    대부분의 경우에는 PostMessage로 아무런 문제가 발생하지 않습니다. 하지만, 일부 프로그램들은 SendMessage로 실행해야 정상 동작합니다. 이 부분은 비활성으로 키보드 사용하기에서 차이점에 대해 알아보도록 하고, 오늘은 마우스에 대해서만 테스트하고 넘어가도록 하겠습니다. 아무튼~ 정상적인 환경에서는 PostMessage나 SendMessage가 동일하게 작동됩니다.

     

    그림판을 자세히 보면 상단 제목과 메뉴 및 아이콘들이 있습니다. 그리고, 그림을 그릴 수 있는 캔바스가 있죠. 윈도우 프로그램들은 대부분 각각의 콘트롤들이 매인 프로그램에 순서대로 쌓여있는 방식입니다. 개발자들은 이런 콘트롤들의 구조를 파악하고 어느 위치에 어떤 콘트롤이 존재하는지 알 수 있습니다. 그래서 명령을 줘야 하는 부분들을 직접 변경하거나 추가할 수 있습니다. 이런 일련의 작업들은 고난이도의 매크로를 만들 때 필요한 기술들입니다. 이런 내용은 핸들 관련 액션을 설명할 때 알아보도록 하고, 아래와 같이 컨트롤 위치를 클릭하면 간단하게 구조를 확인할 수 있습니다.

    b2B7EV1.png

     

     

    마지막으로 비활성 매크로만의 장점에 대해 알아볼께요. 아래와 같이 그림판을 메모장으로 가려놓고 실행 해보세요.

    RF4KWFg.gif

     

     

    창을 이동하면서 클릭 해볼까요? 비활성 모드에서는 항상 같은 위치를 클릭합니다.

    xQofdzj.gif

     

     

    마지막으로 창을 최소화하고 실행 해보세요. 그림판은 창을 최소화해도 클릭이 정상적으로 동작합니다. 하지만, 일부 프로그램들은 DirectX나 OpenGL과 같은 모듈의 도움을 받아야 할수도 있습니다. 이는 프로그램마다 그래픽을 처리하는 방식이 달라서 발생되는 문제인데요. 모든 프로그램이 창을 최소화해도 동작하는건 아니기 때문에 테스트를 해봐야 알 수 있습니다.

    kGM4WvT.gif

     

     

    글을 적다보니~ 이것 저것 설명해야 할게 너무나 많습니다. 이 글을 보시는 분들도 궁금한점이 많을텐데요. 마음에 여유를 가지고 하나씩 테스트하면서 학습하다보면 어느순간 모든 기능에 대해 숙련도가 올라가 있을겁니다. 너무 조급하게 생각하면 쉽게 해결할 수 있는 문제도 멀리 돌아가는 일들이 종종 발생하곤 합니다. 가급적이면 메뉴얼을 정독하면서 따라해보고 잘 안되는 부분은 질문하면서 이해하고 넘어가는게 좋습니다. 물론~ 시간 대비 비용의 효율을 따져보고 시간이 더 중요하다면 제작 의뢰를 맡길수도 있죠. 하지만, 가능하면 직접 하시는걸 추천합니다. 이유는 간단합니다. 많은 분들이 다른데서 수백만원을 들여서 프로그램을 제작하고 결국은 엔지엠소프트웨어로 오는 경우가 많습니다. 여러가지 이유가 있지만 대표적으로 개발자가 잠수를 타거나 유지보수 비용이 턱없이 비싸거나 하는 것들입니다. 제작 비용을 완납하면 그때부터 연락이 안되는 경우가 많다고 합니다. 제작을 의뢰할때는 개인 개발자가 아닌 회사(사업자, 홈페이지, 이메일이 지메일이나 네이버가 아닌 회사 이메일)에 맡기는게 좋습니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.