모임2/지금은 수업중

[스크랩] 키보드/마우스 매크로 프로그램 V1(쉬운 버전)

황길용 2014. 10. 1. 13:09

키보드/마우스 매크로 프로그램은 키보드나 마우스 입력을 자동화하기 위한 프로그램 입니다. 순차적으로 입력되는 키보드나 마우스 입력을 기록해 두었다가 원하는 시점에 기록한 것을 실행함으로 단순한 반복작업을 줄여주거나 윈도우의 작업을 일괄처리 할 수 있도록 합니다.

 

매크로 프로그램을 처음 사용하시는 분들께서는 키보드/마우스 매크로 프로그램 V1(쉬운 버전)을 사용하시기 바랍니다. 만일 V1에 익숙하신 분들이라면 키보드/마우스 매크로 프로그램 V2(다기능 버전)을 사용하시기 바랍니다. V2에서는 V1에 없는 많은 기능들이 구현되어 있습니다.

 

다운로드:

키보드/마우스 매크로 프로그램은 설치형 버전을 제공하고있지 않습니다. 단순히 실행 파일 하나만 제공하고 있는데, 다음 실행파일을 다운받아 적당한 폴더에 옮겨 두고 사용하면 됩니다. 만일 매크로 프로그램으로 프로그래밍 공부를 하시고자 한다면 다음 소스코드를 받아 보시기 바랍니다. 소스코드는 Visual Studio 2008에서 C++언어로 작성되어 있습니다. 소스코드를 컴파일 하시려면 Visual Studio 2008 컴파일 시 Service Pack 1 필요합니다.

 

프로그램 다운로드:       key_macro.exe  -  Version: 1.30 (최종 수정일: 2014.4.23)

                                  key_macro.exe  -  Version: 1.32b (최종 수정일: 2014.8.15)

 

소스코드 다운로드:        key_macro1.zip  -  V1.30 매크로 프로그램 소스코드 (Visual Studio 2008에서 C++언어로 작성)

                                  key_macro1.zip  -  V1.32b 매크로 프로그램 소스코드

 

*주의) Version 1.32에서 키보드와 마우스 이벤트를 받아들이도록 등록하는 함수를 RegisterRawInputDevices() 함수로 수정하였습니다. 이로인해 키보드와 마우스 이벤트 처리와 관련된 많은 부분들이 수정되었습니다. 사용하시다가 문제를 발견하시면 댓글로 알려주시기 바랍니다. 감사합니다.

 

사용법:

이 프로그램의 사용법은 단순합니다. 특정 작업을 위한 키보드와 마우스 이벤트를 순차적으로 매크로에 기록해 두고 지정된 키가 눌릴 때 매크로를 실행하는 것입니다. 또한 여러개의 매크로를 등록해 두고 동시에 실행할 수도 있습니다.

 

프로그램을 실행하면 상기와 같은 대화상자가 표시됩니다. 바로 키보드/마우스 매크로  프로그램 V1의 메인 화면입니다. 여기서 할 수 있는 일은, 매크로를 기록하고 새로운 매크로를 추가하거나 편집하고 이미 만들어진 매크로를 복사하거나 삭제하는 일입니다. 그리고 상단의 라디오 버튼을 이용하여 매크로를 실행가능 상태로 바꾸거나 매크로 실행을 중단하고 편집가능 상태로 바꾸는 것입니다.

 

 

대화상자 상단의 '매크로 실행 가능' 라디오 버튼을 선택하면 매크로 편집이 불가능하며 작성된 매크로를 실행 가능한 상태로 만듭니다. 이 상태에서 매크로 시작 단축키에 지정된 키를 누르면 해당 매크로를 실행하게 됩니다. '매크로 실행 중단과 편집' 라디오 버튼을 선택하면 매크로는 더이상 실행되지 않고 매크로를 기록/추가하거나 편집할 수 있습니다.

 

좌측 상단에는 매크로 실행 대기와 편집을 토글하는 키를 지정할 수 있습니다. 상기 그림에서는 F10 키가 설정되어 있는데, 이 키를 누를 때마다 '매크로 실행 가능'과 '매크로 실행 중단과 편집' 라디오 버튼을 오가며 토글합니다.

 

대화상자 하단의 키보드/마우스 이벤트 실행 주기는 매크로에 등록된 키보드나 마우스 이벤트가 순차적으로 실행될 때, 각 이벤트 간의 시간 지연값입니다. 상기 그림에서는 0.033초로 설정되어 있습니다. 만일 1000개의 이벤트가 등록되어 있다면, 총 실행시간은 33초가 될 것입니다. 하지만 이 시간은 운영체제에 따라 유동적일 수 있습니다. 왜냐하면 운영체제가 정확한 타이머 인터럽트를 제공하지 않기때문입니다. 사용자는 이점을 고려하여 이 값을 설정해야 합니다.

 

다음 대화상자는 메인 화면에서 매크로 [기록] 버튼을 누른경우 표시되는 대화상자입니다. 여기서는 사용자가 입력하는 키보드와 마우스 이벤트를 기록하게 됩니다. 즉, 사용자가 키보드와 마우스 이벤트를 일일이 추가하지 않아도 프로그램이 사용자가 조작하는 키보드와 마우스 입력을 캐치하여 기록하게 됩니다.

 

 

대화상자 상단의 텍스트와 같이, 매크로 기록을 시작하기 위해서 지정된 키(여기서는 F11키)를 누르면 됩니다. 그러면 기록 상태가 [기록 대기 중]에서 [매크로 기록 중]으로 바뀌면서 입력되는 키보드와 마우스 이벤트를 차근차근 기록하게 됩니다. 매크로 기록을 종료할 때는 지정된 키를 한번 더 누르면 됩니다.

 

매크로 기록 대화상자에서 기록한 매크로는 매크로 이름이나 시작 단축키, 중지 단축키가 디폴트 값으로 설정됩니다. 그렇기 때문에 매인 윈도우로 돌아가서 [편집] 버튼을 눌러 이 값들을 사용자가 원하는 값으로 변경하여야 합니다.

 

그리고 기록 옵션들이 있는데, 체크를 바꾸어가며 테스트 해보시면 기능을 금방 익힐 수 있습니다. 여기서는 설명을 생략하도록 하겠습니다.

 

다음 대화상자는 메인 화면에서 매크로 [추가]나 [편집] 버튼을 누른경우 표시되는 대화상자입니다. 여기서는 비어있거나 이미 작성된 매크로가 열리면서 사용자가 하나하나 키보드와 마우스 이벤트를 직접 편집할 수 있습니다.

 

 

첫번째 행에서 매크로 이름을 지정하고, 두번째와 세번째 행에서 매크로 시작과 중지 단축키를 설정합니다. 추가적으로 키를 누를 때와 뗄 때를 구분하여 지정할 수 있습니다. 만일 시작과 중지 단축키를 동일하게 지정하고 시작 단축키는 누를 때로 중지 단축키는 뗄 때로 설정하면 키가 눌린 동안만 매크로를 실행할 수 있도록 할 수 있습니다.

우측의 [키보드 추가], [마우스 추가], [지연 추가]로 키보드 키, 마우스 버튼과 움직임, 지연 시간을 추가할 수 있습니다. [편집] 버튼은 이미 작성된 항목을 편집할 때 사용합니다. [삭제] 버튼은 선택된 항목을 삭제합니다. 왼쪽 리스트 박스에서는 편집을 위해 Ctrl+A, Ctrl+X, Ctrl+C, Ctrl+V, Delete 키를 사용할 수 있습니다.

 

마지막으로 매크로 반복 실행 횟수는 매크로가 시작되고 몇 번을 반복할지를 결정합니다. 이 숫자가 0이면 중지 단축키를 누를 때까지 무한 반복하게 됩니다.


 Version 1.32b (수정일: 2014.8.15) 업데이트 사항:

  - 매크로 종료시 모든 눌린 키/버튼 떼기 옵션 추가

     (이전 버전에서는 이 기능이 옵션으로 선택 불가능하고, 강제로 수행되던 기능임)

 

 Version 1.32a (수정일: 2014.7.4) 업데이트 사항:

  - 매크로에 의해 생성된 키보드/마우스 이벤트가 시작/중지 단축키로 재입력 되지 않도록 수정

     (Version 1.30 까지 있었던 기능)

 

 Version 1.32 (수정일: 2014.6.30) 업데이트 사항:

  - 소스코드 정리

  - 키보드 마우스 이벤트 받아들이는 함수를 수정함

 

 Version 1.31b (수정일: 2014.6.28) 업데이트 사항:

  - 소스코드 정리

 

 Version 1.31a (수정일: 2014.6.26) 업데이트 사항:

  - 키보드 입력 추가할 때 항상 0이 추가되는 버그 픽스

  - 키보드와 마우스 이벤트 후킹시 큐를 사용한 버퍼링
 

 Version 1.31 (수정일: 2014.6.25) 업데이트 사항:

  - 메인화면에서 "매크로 실행시 IME의 한/영 전환 상태 감지" 체크시,
     키보드 입력시점에서 한/영 전환키의 상태와 일치하도록 매크로 실행시 한/영 전환을 강제로 수행

     (Internet Explorer에서는 제대로 수행되지 않음)

  - 매크로가 완전히 수행되지 않고 정지한 경우, 키보드의 키가 눌린 상태로 남아있는 키를 모두 눌린 상태 강제 해지하도록 함

 

 Version 1.30 (수정일: 2014.4.23) 업데이트 사항:

  - 키보드/마우스 매크로 프로그램 V2와 차별화를 위해 단순한 기능 위주로 매크로 프로그램 구성을 바꿈

 

 Version 1.26a (수정일: 2013.10.1) 업데이트 사항:

  - Multimedia timer 사용시 keyboard event가 후킹되지 않는 bug fix

 

 Version 1.26 (수정일: 2013.7.4) 업데이트 사항:

  - 매크로 실행시 정확한 타이밍을 위해 Multimedia timer 사용

  - 프로그램을 닫기위해 [OK], [Cancel] 버튼 사용하도록 수정

 

 Version 1.25 (수정일: 2012.12.16) 업데이트 사항:

- 메인 화면의 "키보드/마우스 매크로" 체크박스 추가:

  매크로 실행시 발생시킨 키보드/마우스 이벤트를 다시 매크로 프로그램으로 입력 가능하도록 함.

  즉, 매크로에서 발생시킨 키보드 이벤트로 다른 메크로를 실행하거나 중단할 수 있음

- 마우스 위치를 화면 해상도에 무관하게 기록하기위한 옵션 추가

- 매크로 [저장] 버튼 추가

 

Version 1.24 (수정일: 2012.11.13) 업데이트 사항:

- 메크로 기록 대화상자에서 누르기/떼기 버튼 합치기 체크박스 추가

- 전체 매크로 실행, 실행 중단과 편집 토글 키로 마우스 버튼 사용 가능

 

Version 1.23 (수정일: 2012.11.6) 업데이트 사항:

 - 전체 매크로 실행시 선택된 매크로 실행 옵션 추가

 - 메인 윈도우에서 프로그램 종료시 선택된 매크로를 기억하도록 함

 

Version 1.22 (수정일: 2012.10.26) 업데이트 사항:

 - 매크로 시작 방법을 병렬로 선택 가능하도록 수정

 - "시작/중지 단축키 사용" 옵션을 선택 가능하도록 수정

 - "선택항목 파란색 박스로 표시" 옵션을 선택 가능하도록 수정

 

Version 1.21 (수정일: 2012.10.22) 업데이트 사항:

 - 매크로를 순차적으로 수행하기 위한 "이전 매크로에 이어 순차적 시작" 옵션을 제거함

 - 매크로에서 매크로를 부를 수 있도록 함

 

Version 1.20 (수정일: 2012.10.22) 업데이트 사항:

 - 매크로를 순차적으로 수행할 수 있도록 매크로 시작 옵션에 "이전 매크로에 이어 순차적 시작"을 추가함

 - 메인 윈도우에서 매크로 순서를 옮기기 위한 [^], [v] 버튼 추가

 - 메인 윈도우의 매크로 목록에서 현재 실행되고 있는 매크로를 선택으로 표시함

 - 매크로 기록 대화상자에서 연속적으로 키보드 누르기와 떼기가 발생할 경우 이를 하나의 누르고떼기로 처리

 - 매크로 기록 대화상자에서 연속적으로 마우스 버튼 누르기와 떼기가 발생할 경우 이를 하나의 클릭으로 처리

 - 매크로 기록 대화상자에서 마우스 움직임이 설정된 거리 이상 움직일 때마다 움직임을 기록하도록 함

 - 매크로 기록 대화상자에서 시간 지연이 설정된 시간 이상일 때만 시간 지연을 기록하도록 함

 - 매크로 추가/편집 대화상자에서 매크로 시작 옵션 추가: 이전 매크로에 이어 순차적 시작

 - 매크로 추가/편집 대화상자에서 [문자열 추가] 버튼 추가와 문자열을 입력하기 위한 대화상자 추가

 - 매크로 추가/편집 대화상자에서 편집 중인 매크로를 테스트로 실행해보기 위해 [매크로 시험 실행], [중단] 버튼 추가

 

Version 1.13 (수정일: 2012.10.10) 업데이트 사항:

 - 매크로 편집 대화상자에서 [마우스 궤적 표시], [지우기] 버튼 추가, 매크로에 기록된 마우스 커서의 경로와 클릭 된 위치를 볼수 있게 함

 - 메인 윈도우에서 전체 매크로 실행과 편집 토글 키를 사용자가 지정할 수 있도록 함

 - 매크로 기록 대화상자에서 매크로 기록을 시작하거나 중지하는 키를 사용자가 지정할 수 있도록 함

 - 프로그램 중복 실행 방지

 - 프로그램 실행시 실행 인자로 매크로 번호를 지정하면 지정된 매크로가 수행됨

   ex) key_macro 1 2 3         <-- 이 경우 첫번째, 두번째, 세번째 매크로가 프로그램 시작시 실행됨

 - 10월 12일 HotFix: Version 1.13에서 매크로 시작/중지 단축키를 마우스로 선택시 마우스 클릭이 선택되던 버그 수정

 - 10월 12일: 특정 시각에 매크로를 수행할 수 있도록 시간 지연 추가/편집 대화상자에서 지연 시각 항목을 추가함

 

Version 1.12 (수정일: 2012.9.26) 업데이트 사항:

 - 이미 작성된 매크로를 복사하여 만들기 위한 [복사] 버튼 추가

 - 마우스 좌표가 기록할 때보다 출력할 때 -1씩 적게 나오는 문제 거의 해결 (드문드문 -1씩 적게 계산됨)

 

Version 1.11 (수정일: 2012.9.23) 업데이트 사항:

- 메인 윈도우 창에서 F12키로 "전체 매크로 실행"과 "실행 중단과 편집" 라디오 버튼을 토글함

 

Version 1.10 (수정일: 2012.9.12) 업데이트 사항:

 - 윈도우 종료시 윈도우의 위치를 기억하였다가 새로 실행하면 같은 위치에서 윈도우가 표시됨

 - 프로그램 시작시 시스템 트레이로 보내기 위한 체크박스 추가
   (최소화 버튼을 누르면 시스템 트레이로 감, 시스템 트레이 아이콘을 더블클릭 하면 윈도우로 복구됨)

 - 매크로를 실행할 때, 각 이벤트간 최소 지연시간을 설정가능하도록 함
   (Windows OS의 특성을 타기때문에 최소 값을 0.001로 설정하더라도 0.005 ~ 0.015 정도로 동작할 것임)

 - 매크로 기록 대화상자에서 X1, X2버튼, 마우스 휠 이벤트를 기록할 수 있도록 변경

 - 매크로 추가/편집 대화상자에서 시작 단축키와 중지 단축키에 누를때와 뗄때 옵션을 추가함

 - 매크로 추가/편집 대화상자에서 각 항목을 편집할 수 있는 [편집] 버튼 추가함

 - 매크로 추가/편집 대화상자에서 선택된 항목을 아래위로 옮길 수 있는 버튼 추가

 - 매크로 추가/편집 대화상자에서 매크로의 반복 횟수 설정할 수 있도록 추가

 

출처 : Open Robotics
글쓴이 : 양광웅 원글보기
메모 : 매크로