강좌 / 팁

하드웨어 USB 키패드를 매크로 키패드로 사용하기

2023.01.02 00:25

지후빠 조회:1272 추천:14

안녕하세요? 이전 마우스편- https://windowsforum.kr/lecture/18830777 -에 이어 키보드편입니다.^^

 

윈도우나 앱에서 단축키 지정시 보통 2개 조합, 또는 3개 이상의 키 조합으로 되는데 한손으로 누르기 힘든 경우도 있습니다. 늘릴수 있는 갯수도 제한되는 것 같구요. 이 게시물은 USB 키보드나 키패드를 추가하여 매크로 전용으로 사용하여 단축키를 단순화 시키거나 갯수를 늘려 보는 것 입니다. 하단에 추가 키보드 없이 펑션키나 숫자키패드를 이용하는 방법도 있으니 여분 키보드 없이 사용하실 분도 참고해보십시오.

 

키보드나 마우스를 추가하여도 윈도우에서 같은 키는 같은 신호로 처리하기 때문에 입력장치를 구별되게 인식할 수 있는 SW가 필요합니다. 검색해보니 비행 시뮬레이션용으로 만들어졌다가 USB 장치들을 지원하게된 luamacros, HIDmacros가 있고, 드라이버 형태로 지원하는 interception이라는 것에 autohotinterception으로 wrapping하여 autohotkey를 이용하는 방법이 있는 것 같습니다.

 

예전에 노트북과 tenkeyless 키보드 사용시 같이 사용했던 Q'senn usb 키패드로 예를 들어 보겠습니다.

- Num Lock이 켜진 상태와 꺼진 상태의 28개 정도 키를 단일키로 매크로나 복잡한 키조합을 전송할 수 있음.

- 숫자키패드 윈도우 스캔 코드 (전채 스캔코드는 댓글에 첨부합니다.)

keypadcode.jpg

 

읽기 귀찮다 싶으시면 오토핫키를 사용하시는 분은 3번, 사용하지 않는 분은 2번으로 직행하십시오. ^^

 

keyboard-macro.zip

 

1. luamacros ; https://github.com/me2d13/luamacros

- PE에서 WinXShell 에서 보았던  lua code를 사용하네요. https://www.lua.org/

- 다운로드 ; http://www.hidmacros.eu/luamacros.zip

- 특이하게 lua를 모르면 사용하지 말라고 합니다. HIDmacros 사용하라고...

- 단순한 key mapping만 할 것이라면, 생소하지만 검색으로 lua code 조금씩 찾아가며 설정할 수 있을 것 같습니다.

- sample script 첨부함; https://gist.github.com/trevren11/a4099bfc650643de6aaff223a046851a 참고하였습니다.

- 실행하는 방법은 LuaMacros.exe를 실행하여 스크립트를 열어서 화살표를 눌러 실행하는 방법과, LuaMacros.exe -r "스크립트.lua" 형식으로 자동 실행할 수 있습니다.

- 스크립트 상부에 lmc.minimizeToTray = true 와 lmc_minimize() 는 실행시 최소화되고 트레이로 보내라는 것이고 첫줄은 TTS라서 지워도 됩니다.

- lmc_device_set_name('MACROS', '55A2BC') 부분의 55A2BC 부분을 자신의 USB 장치에 맞춰서 설정하여야 합니다.

- 그림처럼 장치관리자에서 확인할 수 있고 두번째로 소개할 HIDmacros의 Devices에서 확인할 수도 있습니다. 장치를 특정하기 위해 장치관리자에서 사용중지시켜 볼 수 있습니다.

- 아래쪽은 각 키 버튼에 대한 실행할 예제를 몇가지 넣었습니다.

- 단점으로 해당 장치 전체가 점유되어 할당되지 않은 키는 동작하지 않습니다.(원래 키 입력도 안됨) 

hid-instance.jpg

 

2. HIDmacros ; https://www.hidmacros.eu/

- 1번 보다는 쉽고, 키 시퀀스 이용이나, vbscript나 jscript를 이용하여 매크로를 실행할 수 있습니다.

- 다운로드 ; https://www.hidmacros.eu/luamacros.zip , 설정탭에서 언어를 korean으로 바꾸십시오.

- Devices(장치) 탭에서 해당 장치를 선택후 Macros탭에서 New로 하나씩 key mapping이나 매크로 script를 지정합니다.

- '키보드 시퀀스 보내기'와 '프로그램 실행', '스크립트' 중에 실행 형태를 선택하여 설정합니다.

- '키보드 시퀀스 보내기'에 단축키나 문장을 넣을 수 있지만 문장 입력시 영문으로 설정하고 한글입력 모드이면 한글 전송이 됩니다.

- Num Lock Off 상태에서 스캔코드가 잘 못 입력됩니다. hidmacros.xml을 열어서 직접 수정해줍니다.

- luamacros와 다르게 설정된 키만 매크로로 실행되고 나머지 키는 원래 키로 동작합니다.

- autohotkey를 사용하지 않은 사용자에게는 좋은 선택이 될 것 같습니다.

hid-instance-1.jpg

hidmacros-1.jpg

hidmacros-2.jpg

 

3. AutoHotInterception ; https://github.com/evilC/AutoHotInterception

- 먼저 Interception 드라이버 설치 후 재부팅, Autohotkey에서 AutoHotInterception.ahk를 include하여 사용합니다.

3-1 Interception ; https://github.com/oblitum/Interception

--- 다운로드 ; https://github.com/oblitum/Interception/releases/download/v1.0.1/Interception.zip

3-1 AHI 다운로드 ; https://github.com/evilC/AutoHotInterception/releases/download/v0.8.0/AutoHotInterception.zip

--- 관리자 권한으로 드라이버 설치 ; install-interception.exe /install, 제거는 /uninstall, 재부팅 필요합니다.

3-3 설치 편하시도록 첨부파일에 필수 파일만 추려서 넣었습니다. 압축 풀고 driver-install-and-unblock.bat을 실행하십시오.

3-4 AHI 사용한 첨부 ahk 파일 간단 설명

ahi-vid-pid.jpg

--- monitor.ahk 실행하여 자신에 맞는 VID /PID를 확인하여 ahk스크립트 GetKeyboardId(0x173D, 0x0001, 1) 부분을 수정하십시오.

--- Left-Mouse-Buttons-Swap.ahk ; https://windowsforum.kr/lecture/18830777 에 소개한 것으로 AHI 기본 사용법 파악용.

--- Qsenn-numpad.ahk : 큐센 숫자키패드를 대상으로 설정하는 예제입니다.

3-5 AHI와 무관한 AHK 스크립트 첨부 파일 설명

--- F1-F12-LongPress.ahk : 펑션키를 짧게 누르면 원래의 기능, 조금 길게 누르면 설정된 프로그램을 실행합니다.

--- NumLockOff.ahk : NumLock off 상태에서 숫자키패들 0~9.을 단축키로 사용합니다.

 

위 예제들에 대해서는 몇 가지만 설명드립니다. 편집기로 열어보면 대충 뭘하는지 알 수 있습니다.

- Left-Mouse-Buttons-Swap.ahk는 개념 이해에 대한 참고만 하십시오. 실사용은 어렵습니다. 일주일전쯤 올린 마우스편을 참고...

- Qsenn-numpad.ahk에서 BS 짧게 누르면 멀티창에서 ctrl+{f4}로 해당창을 닫고, 좀 길게 누르면 alt+{f4}로 해당 앱을 종료합니다.

--- 크롬을 예로 들면 BS 짧게 누르면 탭닫기, 길게누르면 크롬 종료

--- +키에 복사, -키에 잘라내기, Enter에 붙여넣기, *에 미디어 재생/정지, /에 mute 등

- NumLockOff.ahk에서 NumpadEnd키는 clcl클립보드 "옵션-액션"에서 템플릿중 댓글용 상용구를 모아두고 사용할 수 있는 예제입니다.

--- Qsenn-numpad.ahk와 NumLockOff.ahk에서 ins에 ctrl+z 실행취소, del에 ctrl+y 다시실행, 앞뒤 이동, 볼륨조절 등

 

4. 클립보드 유틸 CLCL 소개

- 위 NumLockOff.ahk에 단축키 설정되어 있는 것과 관련되어 있어서 조금 설명드립니다.

- 관련 게시물들을 올린적이 있습니다. https://windowsforum.kr/lecture/16357131 , https://windowsforum.kr/data/7635265 

- 기능 하나하나가 버릴 것이 없이 알찬 유틸인 것 같습니다. 여기서는 상용구 사용하는 방법을 간단히 요약합니다.

- 먼저 옵션-액션-추가 합니다.

clcl-option-action-add.jpg

- 다음 뷰어-템플릿에서 적당히 구성합니다.

clcl-viewer-template-add.jpg

- 상용구 사용할 곳에서 해당 단축키 실행

clcl-action-popup.jpg

- 이런 상용구를 분야별로 만들어 사용할 수 있고,

  이처럼 추가하지 않고도 기본 alt+c 를 누르면 최근 클립보드 히스토리와 템플릿이 나타납니다.

clcl-action-popup-alt-c.jpg

- 또 액션에 추가하여 심플한 툴바로도 사용가능합니다.

clcl-toolbar.jpg

 

 

여분의 키보드나 한손 (게이밍) 키보드 등을 효율적으로 사용할 수 있을 것 같고, 전문 프로그램 사용하시는 분은 잘 세팅하면 유용할 것 같습니다. key mapping, macro program 등 다른 다양한 방법도 있겠지만 키조합 보다는 단일키를 활용해보자는 시도였습니다. ^^

 

늦어서... 생각나는 것 있으면 내일 더 추가하겠습니다. 간단히 쓰려고 시작한 것이 시간이 많이 걸리네요.ㅜㅜ

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
4332 윈 도 우| 파일을 디펜더가 차단할때, 파워쉘로 허용시키기 new zerojiddu 22 0 14:43
4331 윈 도 우| 강제로 Internet Explorer 열기 스크립트 [8] update 사랑이7 566 12 02-05
4330 윈 도 우| 윈도우11 $OEM$소스 및 WinNTSetup 응용 설치! [29] update 무월 1318 46 02-03
4329 윈 도 우| 윈도우 부팅시 신용카드 정보를 요구할때 넘어가기 [5] 고장난우주 1436 1 02-01
4328 기 타| 볼륨명 찾기 막판 - 종합 쓰임새 중 1 - 주절주절 [1] 코코당 280 5 02-01
4327 기 타| 이동식 하드 디스크 알아야 될때는 ? - 볼륨명 찾기 3 코코당 362 2 01-31
4326 기 타| 이동식 하드 디스크 알아야 될때는 ? - 볼륨명 찾기 2 [1] 코코당 241 2 01-31
4325 기 타| 이동식 디스크 볼륨명을 알아야 될때는 ? - 볼륨명 찾기 1 [1] 코코당 300 2 01-31
4324 윈 도 우| 감춰진 모든 고급 전원옵션 표시하기 [4] zerojiddu 1064 13 01-30
4323 윈 도 우| 특정 폴더 내 임의 파일/폴더 선택 배치 함수 [11] 지후빠 436 14 01-29
4322 윈 도 우| 프로그램 필요없이, 윈도우 설치 USB 만들기 [15] zerojiddu 4398 27 01-18
4321 기 타| CMD BAT 를 UTF8 모드로 사용 [13] 입니다 1302 21 01-16
4320 윈 도 우| 폴더 깊이 제한하여 파일,폴더 찾기 배치 함수 [11] 지후빠 1002 15 01-12
4319 윈 도 우| 배치파일 명령어 > nul 2>&1 해석 [6] 컨피그 844 11 01-11
4318 윈 도 우| BCD 백업 및 복구 프로그램 입니다 [14] 지룡자 2014 39 01-10
4317 하드웨어| Windows 11에서 Realtek 오디오 드라이버를 쉽게 수정하는 ... [6] VᴇɴᴜꜱGɪ 2172 7 01-04
» 하드웨어| USB 키패드를 매크로 키패드로 사용하기 [7] 지후빠 1272 14 01-02
4315 윈 도 우| 삭제할수 없는 시스템 앱, 삭제 방법 [8] zerojiddu 2514 13 01-01
4314 소프트웨어| Wise care 365 사용시 주의점 [6] update heykevin 1975 8 12-30
4313 윈 도 우| 포맷없이 , diskpart 작업 없이 기존 디스크에 EFI 파티션 ... [13] heykevin 2393 19 12-30
XE1.11.6 Layout1.4.8