질답게시판에서 곰님의 질문글을 보고 생각나서 올려봅니다.
http://www.kbdmania.net/board/zboard.php?id=qna&page=1&sn1=&divpage=2&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=7059

우리의 무한한 가능성을 가진 유틸리티인 AutoHotKey를 이용하면 3700의 모드4 부럽지 않은 매크로 기능을 누구나 다 누릴 수 있습니다. :-)
단, 소프트웨어적인 방법의 한계상, 한 키패드에서는 매크로 모드 돌리고 다른 키패드에서는 그냥 평범하게 쓰고...하는 것은 없습니다. (두둥) 그냥 모든 키패드에서 다 매크로가 적용이 됩니다.

각설하고, AHK에서는 텐키패드의 키들에게 NumLock이 꺼졌을 때만 작동하는 이름을 부여하는데, 이걸 이용하면 됩니다.

NumpadDel (.)
NumpadIns (0)
NumpadClear (5)
NumpadUp (8)
NumpadDown (2)
NumpadLeft (4)
NumpadRight (6)
NumpadHome (7)
NumpadEnd (1)
NumpadPgUp (9)
NumpadPgDn (3)

이들을 키에다가 다른 키값을 매핑하거나 매크로를 적용하면 됩니다. ~_~

예를 들어 텐키 패드의 '1'키를 NumLock이 꺼졌을 때 F1로 쓰고 싶다면...

NumpadEnd::F1

이렇게 하면 됩니다.

한데, AHK는 이러한 NumLock의 토글 유무를 자동으로 해주는 것은 이들 11개의 숫자키에 한해서 입니다. 나머지 키를 이용하려면 보다 복잡하게 매크로를 작성해 줘야 하는데요.

NumpadDiv (/)
NumpadMult (*)
NumpadAdd (+)
NumpadSub (-)
NumpadEnter (텐키 엔터)

이들 키에 대해서 NumLock의 토글 여부에 따라서 매크로를 지정해 줘야 합니다.

즉, 예를 들어 NumLock이 꺼져 있을 때에 텐키의 +키가 왼쪽 윈키의 키 입력을 발생시키도록 하려면...

NumpadAdd::
if (GetKeyState("NumLock", "T") = 0) {
  send {LWin}
}
else
  send {+}
return

여기서 GetKeyState()함수는 인수로 지정된 키가 눌려져 있으면 1을, 눌리지 않았으면 0을 리턴하는 함수입니다. 토글키에 대해서는 보조 인자로 "T"를 지정해서 토글 상태에 대해서 검사를 하도록 할 수 있습니다.

아무튼, NumLock의 토글상태를 검사해서 NumLock이 꺼져 있다면 (0) LWin의 신호를 발생시키도록 합니다.
그리고 NumLock이 켜졌을때 보낼 신호를 정해야 하는데요, 이때 아무것도 적어주지 않으면 당연히 어떠한 반응도 보이지 않습니다. 그렇다고 그냥 send {NumpadAdd} 를 해서도 안됩니다. 왜냐하면 NumpadAdd 키 입력 매크로가 NumpadAdd 매크로를 다시 호출해 버리는 재귀현상이 발생해서 무한루프에 빠져 버리기 때문이죠. 다행히 AHK는 무한루프에 빠져버리면 알아서 경고 메시지를 출력해서 멈출수 있도록 합니다만...
그래서 이때는 아쉽지만(?) NumpadAdd대신에 그냥 평범한 +키를 쓰도록 합니다.
물론, 이것 역시 완전히 다른 것으로 바꿔도 상관 없습니다. ~_~;

여담으로 이 AHK는 기능이 엄청나게 막강합니다. 게임에서 특정 좌표의 색깔을 읽어 들여서 그 좌표의 색이 특정 색상이면 일정한 키 스트로크를 발생시키도록 할 수도 있습니다. (예를 들어 헬쓰바의 색깔이 빨간색이라면 헬스팩을 쓰도록 한다던가...) 제가 지금껏 알아본 기능은 AHK의 전체 기능 중에 고작 10%도 안될거 같군요. ~_~;;

NMB RT-101+ Everex version, with white linear switch (IT'S THE FREAKIN' BEST KEYBOARD EVER)

NMB RT-101+ Advanced Logic Research ver. with black click switch

Omni Key Ultra, Alps White Click

Zenith ZKB-2R, with Alps Green Linear

Zenith ZKB-2, with Alps Yellow Linear

Wang 725, with Alps Black Non-click

Sejins

Cherrys

Trigem PAXIM 8901 Alps White Click

IBMs

Topre RealForce 101

Fujitsu Happy Hacking II

Apple Keyboards

NECs