에디터 비활성 매크로 만들기 - 비활성으로 제어하는 창의 핸들 가져오는 방법. (매인 핸들, 콘트롤 핸들)
페이지 정보
본문
안녕하세요. 엔지엠소프트웨어입니다. 비활성 매크로를 만들려면 제어하려는 창(윈도우 프로그램)의 핸들(Handle) 값을 알아야 합니다. 핸들이라는 용어가 어떻게 보면 많이 생소한 용어이기도 합니다. 그런데 일상 생활에서 자주 보고 사용하는 용어이기도 해요. 네 그래요~ 여러분들이 생각하는 그 핸들 맞습니다^^
※ 필독 - [ 비활성 다클라 매크로를 만들 때 주의사항 ]
자동차를 운행하기 위해 핸들을 조작하죠? 어떤 프로그램을 조작하려면 핸들 값을 알아내서 이 핸들로 프로그램을 제어해야 합니다. 우리가 조작하는 대부분의 것들을 핸들이라고 부릅니다. 문을 열 때 손잡이나 서랍 손잡이등등... 아무튼 그렇습니다. 비활성 매크로를 만들려면 핸들을 알아내는게 가장 중요한 작업중에 하나입니다. 이 테스트를 위해 카카오톡 대화방을 열고, 엔지엠 에디터도 실행 해줍니다.
카카오톡 대화방에 글자를 남겨볼께요. 새로운 스크립트에 [ 핸들 추가 ] 액션을 추가하세요.
핸들을 추가(속성창 > 콘트롤 찾기 > F1 선택)하면 속성창의 데이터에 매인 핸들과 콘트롤 핸들이 자동으로 입력됩니다. 여기서 윈도우 핸들은 카카오톡 채팅창을 말하고, 콘트롤 핸들은 사용자가 선택한 채팅 입력하는 곳의 콘트롤입니다.
핸들 값은 프로그램을 실행시킬 때 윈도우가 중복되지 않게 고유한 아이디를 발급합니다. 그러므로 윈도우에서 이 값이 중복되는 일은 발생하지 않습니다. 다만, 핸들 값이 프로그램을 실행할 때 윈도우에서 발급하기 때문에 다음에 다시 실행할 때 이 값이 변경되게 됩니다. 그래서, 엔지엠 매크로는 아래와 같이 프로그램명으로 구조를 찾아나가게 설계되어 있습니다. 카카오톡은 구조가 단순해서 엔지엠 에디터를 잠깐 선택 했습니다^^
여기까지는 이해가 되셨죠? 위에서 알아본 내용은 기본적인 비활성 매크로를 만들기 위한 방법이었습니다. 그런데~ 일부 프로그램은 매인 핸들과 콘트롤 핸들을 찾을 수 없습니다. 여러가지 다양한 이유들이 존재하는데요. 여기서 알아볼건 아닙니다^^; 그러면, 이런 콘트롤의 핸들은 어떻게 찾는지에 대해 알아보도록 하겠습니다. 여기부터가 이 글의 핵심 내용입니다. 여러분들도 아래 동영상을 참고해서 설정 값을 모두 초기화 해주세요.
윈도우 프로그램들은 클래스 이름을 가집니다. 추가적으로 캡션이 있을수도 있는데요. 이 테스트에는 캡션이 없습니다. 찾을 콘트롤인 ①텍스트 입력창을 클릭하세요. Window Spy 프로그램에서 ClassNN(클래스 이름)과 텍스트(Caption)를 확인할 수 있습니다. 텍스트 입력창은 텍스트가 없기 때문에 표시되지 않았습니다.
텍스트 입력창에 NGMsoftware를 입력하고, 다시 클릭 해보세요. 이번에는 텍스트도 잘 가져온걸 알 수 있습니다. 캡션으로 콘트롤을 찾을 때는 버튼이나 라벨(Label) 콘트롤인 경우에 유용합니다. 텍스트 입력창과 같은 경우에는 콘트롤을 찾는 시점에 텍스트가 없을수도 있기 때문입니다.
캡션(Text)과 클래스 이름을 찾는 방법은 이외에도 스파이++(Spy++)을 이용해도 됩니다. 아래 동영상을 참고 해보세요^^
오토핫키의 Window Spy보다 Spy++이 더 많은 정보를 확인할 수 있습니다. 특히나, 콘트롤의 구조를 파악할 수 있다는점이 매우 강력합니다. 카카오톡 대화방의 구조를 보면 아래와 같습니다. 매인창 아래에 3개의 콘트롤이 존재합니다. 마지막 콘트롤은 또 하위로 콘트롤이 있다는걸 알 수 있습니다. + 표시가 있으니까요^^
우리가 찾을 콘트롤은 창 000B0F7A "NGMsoftware" RICHEDIT50W입니다. 첫번째가 핸들 값이고 두번째가 텍스트입니다. 마지막 3번째는 클래스 이름입니다. 우선, 텍스트 입력창이 매인창의 첫번째 자식 콘트롤인걸 알 수 있습니다. 아래와 같이 직접 콘트롤을 찾을수도 있습니다.
※ 정상적으로 찾아지지 않는 경우에는 직접 콘트롤 찾기를 편집할 수 있습니다.
캡션이나 클래스 이름으로 핸들 값을 찾으려면 찾기 옵션을 True로 변경한 후 아래 동영상과 같이 직접 입력하세요. 실행하면 핸들 값을 정상적으로 가져올 수 있습니다.
엔지엠 에디터의 속성창에서 마우스 좌표를 클릭하면 좌표로 핸들을 쉽게 찾을 수 있습니다.
테스트를 위해 아래 동영상처럼 [ 텍스트 쓰기 ] 액션을 추가한 후 스크립트를 실행 해보세요. 텍스트가 비활성으로 입력됩니다.
이렇게해서 간단하게 비활성 매크로를 만들기 위한 핸들 값 찾기에 대해 자세하게 알아봤습니다. 혹시라도 궁금한 사항이 있으면 커뮤니티의 질문과 답변 게시판에 남겨주세요!
※ Spy++이나 Window Spy 프로그램은 오토핫키 매크로 제작자나 파이썬 매크로, C# 매크로를 제작할 때 사용하는 무료 소프트웨어들입니다.
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~
- 이전글화면 캡쳐 또는 이미지 조건 실행이 실패하는 경우 해결 방법. 22.03.03
- 다음글마우스 커서 위치에 다른 프로그램의 행 텍스트 가져오기. 22.02.26
댓글목록
등록된 댓글이 없습니다.