NGMsoftware

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

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

    팁 앤 테크

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

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

    에디터 비활성 매크로에서 핸들을 찾는 다양한 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 여러개의 클라이언트를 동시에 제어하는 방법은 비활성 매크로를 사용하는건데요. 문제는~ 비활성 매크로를 만들기가 생각보다 어렵다는 것입니다. 그래서, 엔지엠 매크로는 쉽게 콘트롤 핸들(Control Handle)을 찾을 수 있는 여러가지 방법을 제공합니다. 이 예제에서는 카카오톡 대화방을 사용합니다. 하지만, 다른 프로그램도 동일하기 때문에 잘 응용하면 여러분들도 쉽게 비활성 매크로를 제작할 수 있을겁니다^^

     

    엔지엠 에디터를 실행하고, 새로운 스크립트를 하나 추가하세요.

    cnOuw3h.gif

     

     

    카카오톡 대화방도 하나 열어주세요.

    RdFTBBj.png

     

     

    스크립트에 [ 핸들 추가 ] 액션을 추가한 후 [ 텍스트 쓰기 ] 액션도 같이 추가 해주세요. 아래 동영상을 참고하셔서 카카오톡 대화방의 텍스트 입력창을 선택 해줍니다.

     

     

    아래 그림과 같이 핸들 추가 액션의 속성에서 윈도우 핸들과 컨트롤 핸들의 값이 0보다 커야 합니다. 0이면 비활성으로 제어할 수 있는 프로그램 또는 프로그램의 특정 컨트롤을 인식하지 못했다는 뜻입니다. 대부분의 컨트롤은 정상적으로 핸들을 가져오지만 일부 프로그램들은 컨트롤을 찾지 못할수도 있습니다.

    vLxATTJ.png

     

     

    컨트롤 핸들 값을 정상적으로 가져왔으면 텍스트를 입력하거나 마우스 클릭이 비활성으로 동작하게 됩니다. 텍스트 쓰기 액션에서 아래 그림과 같이 비활성 모드는 "SendMessage"로 변경하세요. 그리고, 텍스트에는 "비활성 매크로!"를 입력 해줬습니다.

    ※ 참고로, 기본값인 PostMessage로 입력이 안된다면 SendMessage로 변경 후 테스트 해보세요.

    W3ZbdBt.png

     

     

    스크립트를 실행하면 아래 동영상처럼 텍스트가 비활성으로 입력됩니다. 비활성이란, 실제 마우스와 키보드가 동작하지 않고, 선택한 프로그램(핸들 값)에 직접 마우스와 키보드 신호를 입력하는걸 말합니다. 그래서, 멀티 다클라 매크로를 만들때는 비활성 매크로로 제작해야 합니다. 활성 모드는 매크로 프로그램(엔지엠 에디터, 엔지엠 플레이어)이 마우스와 키보드를 제어하기 때문에 사용자가 다른 작업을 할 수 없습니다.

     

     

    핸들 추가 액션의 컨트롤 위치 속성을 클릭 해보면, HandleItem 컬렉션 편집기가 실행됩니다. 프로그램에 따라 여기에 등록된 항목은 달라집니다. 카카오톡 대화방의 텍스트 입력창은 카카오톡 대화창 프로그램의 첫번째 자식 항목(First Child)인걸 알 수 있습니다. 윈도우 프로그램은 구조적인 형태를 가집니다. 그래서, 내가 원하는 컨트롤에 신호를 주려면 매인창을 기준으로 제어할 컨트롤의 위치를 알아내야 합니다. 일부 프로그램은 구조를 제대로 파악할 수 없는 경우도 있습니다. 윈도우의 Spy++을 이용하여 좀 더 디테일하게 분석 해볼 수 있습니다. 다른 외부 프로그램을 이용해서 구조를 파악했으면 추가 버튼을 눌러서 직접 입력할수도 있습니다.

    JfpPI7y.png

     

     

    이번에는 수동으로 처리하는 방법에 대해 알아보겠습니다. 오토핫키의 윈도우 스파이(Window Spy)를 사용하면 콘트롤의 클래스 이름을 쉽게 알아낼 수 있습니다. 아래 동영상을 참고하셔서 카카오톡의 텍스트 입력창의 클래스 이름을 알아냅니다. 그리고, 이 값을 핸들 추가 액션의 클래스 이름에 입력하세요.

     

     

    찾기 옵션을 True로 변경해야 수동으로 핸들을 찾을 수 있습니다. 그리고, 매인창의 창 제목을 입력하세요.

    KKfc9Ul.png

     

     

    이렇게하면, 직접 알아낸 컨트롤 핸들 값을 가져오고 제어할 수 있습니다. 클래스 이름을 좀 더 쉽게 알아내려면 마우스 좌표를 사용할 수 있습니다.

     

     

    이외에도 단일 폼으로 제작된 프로그램은 컨트롤을 가지지 않습니다. 이런 경우에는 창 제목에 "@" 기호를 사용해서 직접 컨트롤을 찾을수도 있습니다. 이때에는 매인 핸들은 존재하지만 컨트롤 핸들은 존재하지 않기 때문에 매인 프로그램에 직접 소프트웨어 신호가 입력됩니다. 좀 더 자세한 문의는 아래 고객 서비스방에 문의하시면 처리 해드리도록 하겠습니다.

    [ 엔지엠 매크로 고객 서비스 ]

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.