조그만한 커스텀 리모컨 만들고 싶어서 지랄해본거 올려봄.

용도는 Alt+tab가능, ESC가능, 동영상 조작(무선키패드에 방향키는 이미 있으므로 Space.) 정도.

이거 이전엔 무선마우스나 블루투스키보드, 조이스틱 갖고 지랄해봤는데. 한손으로 조종하기엔 이게 가장 나은거같더라.
무선숫자패드로 한 이유는 버튼이 적절하게 많아.



두줄요약.
Window에서 사용가능한 숫자키패드 + AutoHotkey 이용한 입력장치.
NumLock 껐을때만 부여한 기능하도록 설정.






기본적으로 숫자키패드는 'NumLock을 껐을 때'에도
방향키, 엔터. +, -, *, /, Del, Home, pageUp, pageDown, Home, End, Insert를 지원한다.
그러므로 조막만한 숫자키패드로도 웬만한건 다 가능해. Ctrl이 없어서 문제지 시발.

물론. 니가 쓰고있는 동영상플레이어와 히토미뷰어, 미연시 등의 키설정을 바꾸어서 해결할 수도 있겠지만.
귀찮잖아. 보통 많이 쓰이는 단축키만 모아서 리모컨을 만들고 싶었다.

그러므로 숫자키패드에 몇가지 키를 잘 사용안하는 'NumLock을 껐을 때'만 기능하도록 만듦.
(NumLock 켜져있을 때 기능은 온전히 사용가능)




참고.
AutoHotkey 설치            https://autohotkey.com/download/
오토핫키 포럼            http://www.autohotkey.co.kr/
AutoHotkey 버튼 상수            http://ahkplant.tistory.com/10


AutoHotkey 설치 후 아래 파일을 .ahk파일로 만들어서 실행하면
숫자키패드의 NumLock을 껐을 때
/는 Ctrl. *는 ESC. 5는 Space. 0는 Alt.로 기능한다. 



-----------------------------------메모장에 넣고 .ahk파일로 저장-----------------------------------
NumpadDiv::
if (GetKeyState("NumLock", "T") = 0)
{
send {Ctrl Down}
while GetKeyState("NumpadDiv", "P"){
if (GetKeyState("NumpadMult", "P")){
send {ESC}
while (GetKeyState("NumpadMult", "P")){
}
}
}
send {Ctrl Up}
}
else
send {/}
return

NumpadMult::
if (GetKeyState("NumLock", "T") = 0)
send {ESC}
else
send {*}
return



NumpadIns::
send {Alt Down}
while GetKeyState("NumpadIns", "P"){
}
send {Alt Up}
return

NumpadClear::
send {space}
return
-----------------------------------메모장에 넣고 .ahk파일로 저장-----------------------------------



NumLock 껐을때 전용 상수값이 있는 키는 그냥 그 키에 구현하면됨.

ex)숫자 0버튼의 NumLock On의 상수 = Numpad0 / Numpad Off의 상수 = NumpadIns

NumLock 껐을때 전용 상수값이 없는 키는 if (GetKeyState("NumLock", "T") = 0) 으로 달아주면 되더라. 

ex) /, *, -, +, Enter 같이 'Numpad를 껐을 때'에도 지 기능 그대로 하는 놈들줘라.




Ctrl의 경우는 NumpadDiv(Ctrl 기능)+NumpadMult(ESC 기능) 눌렀을때 Ctrl+ESC를 기능토록 만든것.
키 반복입력 막으려고 while 루프 씌웠더니. Ctrl 입력받을때 ESC 입력을 못받더라.
멀티 쓰레딩으로 만들어야되나.

무한루프 중간중간 끼운건 저렇게 안하면 반복입력되서 한번만 해주라고 넣어놨.




어떻게 커스텀하면 더 좋을까.