매크로 커뮤니티

조회 수 415 추천 0 댓글 1

안녕하세요. 소심비형입니다. NGM 사용자분 중에 동적 컨트롤을 어떻게 핸들링해야 하는지 질문한 내용이 있어서 팁을 작성하게 되었습니다. 우선, 장황하게 설명은 했지만 개발자가 아니라면 이해하기 어려운 내용이기에 좀 더 풀어서 설명하고 예제를 만들어 보도록 하겠습니다.

img.jpg


 

 

윈도우는 정적인 컨트롤과 동적인 컨트롤로 구분됩니다. 쉽게 예를 들어보면 이렇습니다. 지금 이 글을 읽고 있는 웹브라우저(크롬, 사파리, 파이어폭스, 익스플로러 등등...)는 페이지가 탭으로 구성되어 있죠? 네 그렇습니다. 지금 이 글은 어떤 탭에 속해있다는 걸 알 수 있습니다. 그렇다면 크롬에서 새 탭을 추가하는 + 버튼을 눌러보면 빈 탭이 추가됩니다. 이 글을 보고 있는 탭은 정적인 컨트롤입니다. 현재 시점에서 + 버튼을 눌러서 새 탭을 추가하기 전까지는 어떤 것도 존재하지 않죠? 하지만 + 버튼을 눌러서 탭을 추가하면 새로운 페이지가 열린다는 건 모두가 알고 있습니다. 이렇듯 어떤 게 보일지 알지만 실체는 없는 컨트롤들을 전부 동적 컨트롤이라고 부릅니다.

img.gif


 

 

개념이 어려운가요^^? 용어가 정적(Static)과 동적(Dynamic)이라고 부르긴 하지만 좀 더 근본적으로 접근해보면 정적은 변화하지 않는 또는 불변성과 같은 의미를 가지고 있습니다. 전통적인 프로그래밍에서 보면 어떤 객체가 메모리에 로드되면 그 주소는 변화하지 않는다는 의미로 사용됩니다. 개발자들은 이미 알고 있겠지만... Static 키워드가 붙어 있는 변수(참조 객체를 포함한)들은 응용프로그램이 종료되어 메모리가 해제될 때까지 유지되는 것을 알 수 있습니다.

img.gif


 

 

동적은 정적의 반대말입니다. 정적이 고정되어 있다는 의미이므로 동적은 고정되지 않은 또는 역동적인 뜻을 가집니다. 우리가 흔히 보고 사용하는 DLL(Dynamic Link Library)이 대표적이죠. 동적은 어떤 명세를 나타냅니다. 추상적이든 구상적이든 말이죠. 한가지 더 집고 넘어가면 추상적이란 뜻은 사람, 개, 고양이, 자동차, 남자, 여자와 같은 것들입니다. 구상적인 것은 뭘까요? 실제로 존재하는 것들을 말합니다. 사람은 추상적이지만 빌 게이츠나 스티븐 잡스는 구상적이죠. 차이점을 아시겠죠?

img.gif


 

 

자 이제 정리해보면 정적은 메모리에 주소가 있다는 뜻입니다. 그렇기 때문에 주소로 추적이 가능하죠. 반면에 동적은 주소가 언제 생길지 모르겠지만~ 그전까지는 추적이 불가능합니다. 동적인 컨트롤이 정적인 영역으로 넘어와야만 추적이 가능하다는 뜻입니다. 그래서 정적인 컨트롤은 현실 세계에서 추적하여 잡아낼 수 있지만, 동적인 컨트롤들은 어떤 알 수 없는 행위의 시점(이벤트)부터 추적이 가능하게 되는 겁니다.

 

 

이제 예제를 통해 어떻게 사용해야 하고, 동적인 컨트롤들을 어떻게 추적해야 하는지 알아보도록 하겠습니다. 현재까지 나와있는 매크로 중에 동적 컨트롤을 추적해서 핸들링할 수 있는 매크로는 NGM이 유일합니다^^; 그 이유는 미래에 언제 생길지 모르는 컨트롤일지라도 어디에 나타나는지 알면 추적이 가능합니다. 주소로 찾는 게 아니라 어디에 나타날지 알기 때문에 추적하여 잡을 수 있게 되는 원리입니다. 여기서 한 가지 의문이 듭니다. 어디에 나타날지 않다는 건 주소를 아는 거 아닌가라고 말이죠. 프로그래밍의 세계에서는(사실은 윈도우라는 플랫폼) 주소는 메모리의 주소를 나타냅니다. 그리고 NGM은 메모리 주소가 아닌 컨트롤의 구조를 파악해서 미래에 나타날 위치를 기반으로 메모리 주소를 찾아가는 방식입니다. 복잡해 보이지만, 예제를 한번 따라 해 보면 쉽게 이해할 수 있을 겁니다.

img.gif


 

 

준비물은 NGM과 카카오톡입니다. 아래와 같이 새로운 스크립트를 추가하세요. 그리고 핸들 추가와 이미지 서치 액션을 추가해줍니다. 아래 그림은 핸들 추가가 선택되어 있는데요. 이미지 서치를 클릭하여 선택해두세요.

img.png

 

 

적당한 이미지를 선택하고 Ctrl+C를 눌러서 클립보드에 저장하세요. 그리고, ①붙여 넣기(Ctrl+V)하면 "클립보드 이미지 전송"창이 표시됩니다. 여기서 Ctrl+Print Screen을 눌러서 NGM의 캡처 모드로 들어갑니다. ②전송 버튼을 적당하게 캡처하여 저장하세요.

img.png

 

 

아래 그림과 같이 창 핸들을 추가하세요. ①핸들 추가를 선택하세요. ②컨트롤 찾기를 클릭하고, ③붙여 넣기(Ctrl+V)를 수행합니다. ④"클립보드 이미지 전송"창으로 마우스를 이동한 후 F1을 눌러서 핸들을 추가하세요. 

img.png

 

 

테스트를 위해 아래와 같이 설정하세요. 핸들 추가의 ①실행 전 지연에 3,000을 입력합니다. ②스크립트를 실행하고, ③붙여넣기(Ctrl+V)를 수행합니다. ④로그 내용을 확인해보세요. 

img.png


 

 

생각과는 다른 결과가 나와서 놀라고 있을지도 모르겠습니다. 분명 핸들도 있고 컨트롤도 있는데 이미지를 가져오지 못한 걸 알 수 있죠. 이는 동적으로 생성되는 위치가 사실과 다르기 때문입니다. 그래서 실체화된 후 실행되어도 이미지를 찾을 수 없게 됩니다.

img.png

 

 

이번에는 정상적으로 동작하게 만들어보죠. 핸들 추가에서 컨트롤 찾기를 누른 후 카카오톡 대화방을 선택하세요. 아래 그림처럼 전체를 선택해야 합니다.

img.png

 

 

아래 그림을 참고해서 팝업을 하나 추가해주세요. 카카오톡의 클립보드 이미지 전송창은 팝업창이더라고요^^; ①컨트롤 위치를 클릭하고, ②추가를 누릅니다. ③노드를 Popup으로 선택하고 ④확인 버튼을 누르세요.

img.png

 

 

테스트를 위해 ①시작 버튼을 클릭하세요. ②붙여 넣기 하세요. ③이번에는 이미지가 정상적으로 찾아진 걸 확인할 수 있습니다.

img.png

 

 

설명이 복잡하고 어려운 용어들이 사용되어 거부감이(?) 느껴질 수도 있습니다. 하지만, 알고 보면 그렇게 어렵지 않은 작업입니다. 윈도우의 모든 프로그램은 구조적이며 어느 정도 예측 가능합니다. 그렇기에 특별한(?) 프로그램을 사용하지 않더라도 카카오톡이나 웹브라우저처럼 간단한 프로그램들은 얼마든지 제어가 가능합니다. 물론, 복잡도가 높아질수록 이것 저것 신경써야 할것들이 많아지긴 하지만요. 결국 매크로는 노력과 시간을 많이 투자해야 좋은 제품이 나오기 마련입니다. 하지만... 어느정도 경지에 오르면 또 금방 싫증 나는 작업이기도 하죠^^;



List of Articles
분류 제목 글쓴이 최근변경 추천
자유 운영 방해 목적의 매크로 관련 글 제재 피카부 2019.09.03 0/0
자유 메이플경매장매크로 구합니다 기발기발기 2020.02.12 0/0
자유 메이플 경매장 매크로 룬오리 2020.02.12 0/0
질문 리니지2레볼루션 매크로 없을까요? 2 emanjour 2020.02.12 0/0
질문 갑자기 린2m 헬퍼가 꺼지네요. 6 앙주니 2020.03.01 0/0
자유 메이플 채광매크로 삽니다 3 편안한길 2020.02.17 0/0
자유 한동안 접속을 못했더니 다시 1랩이되어 버렸네요. 11 원준데디 2021.09.16 0/0
질문 로한m 프로그램 구하고 싶습니다. 까망소 2020.02.08 0/0
질문 린투엠 매크로 관련 문의 4 룬히니 2020.03.02 0/0
자유 카카오토를 오프라인으로 강의 진행합니다. 3 탱구리 2020.08.06 0/0
질문 매크로다운로드어떻게 하죠? 1 티띠 2020.02.19 0/0
질문 리니지2M 다계정 컨트롤 하는 매크로 사용하신분 계신... GNOLL 2020.02.19 0/0
자유 라이즈 오브 킹덤즈(라오킹) 매크로 구합니다 윤구리 2020.02.07 0/0
질문 리니지2m 헬퍼 사용중입니다.오토키가 안눌려요. 2 앙주니 2020.02.19 0/0
질문 모바일게임이 아니고 pc게임도 적용이가능한 매크로인가요 2 호랑이어흥 2020.03.18 0/0
자유 메이플 사냥매크로 대량구매 합니다. 매니아서버 2020.02.03 0/0
질문 소울아크 쫄작 매크로 가지고 계신분 있으신가요? 3 소울아크 2020.02.02 0/0
질문 이겜한지도언 2달째 재미있어요 단지 ...... v4 v4 v4 3 욜라빠른거북이 2020.05.19 0/0
질문 헬퍼는 게임가드를 뚫은건가요? 3 준기네필름 2020.02.03 0/0
자유 리니지2m 자동귀환 매크로 구합니다. 4 유오 2020.02.19 0/0
정보 비활성으로 동적 컨트롤 제어하는 매크로 만들기. 1 소심비형 2020.04.07 0/0
Board Pagination Prev 1 ... 226227228229230231232233234 ... 525 Next
/ 525

전체 최신 인기글

전체 주간 인기글