키보드 키 설정을 바꿔봅시다~ (노트북 사용자에게 유용)
- Posted at 2004/12/22 23:33
- Filed under 개발&소개/Application
그런데 새로 사용하기 시작한 노트북은 일본내수 제품인지라 키보드의 배열이나 자판 인식이 설령 한글 윈도우를 설치했다고 해도 정말 난감한게 많더군요. 물론 사람들이 키보드 키 배치를 적당히 바꿔놓은 레지스트리 파일이 있기는 했지만, 기왕 하는거 한번 이 기회에 어떻게 하는건지 알아보자는 공돌이의 맘으로(~.~) 찾아보았습니다.
역시 Google은 멋져요~ (이게 아니잖아~)
자 그럼 간단히 어떻게 하는건가 떠들어보면~
키보드는 각각의 키에 고유의 scancode라는 것을 가지고 있고 윈도우는 그것을 인식해서 처리하는 방식으로 동작을 한다고 합니다. 따라서 각각의 키의 인식을 다른 키인냥 바꿔주려면 이 코드 값을 파악해서 교체해주면 된다는거죠...
레지스트리
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
에 새로운 값
Scancode Map
을 추가하면 원하는 키 인식 바꾸기를 할 수 있다는 겁니다. (마소 사이트 http://www.microsoft.com/whdc/device/input/Scancode.mspx 을 참고)
예를 들어 제 노트북에 적용한 레지스트리 값은 아래와 같습니다.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:\
00,00,00,00,00,00,00,00,07,00,00,00,\
2b,00,7d,00,\
36,00,73,00,\
1c,00,2b,00,\
71,00,7b,00,\
72,00,79,00,\
38,00,70,00,\
00,00,00,00
(레지스트리값 출처 : 파나소닉 노트북 동호회 - 렛츠월드)
일단 첫줄에서 00 8개는 시작 헤더정도로 무시하시고
다음 07,00,00,00 은 앞으로 총 7개의 데이터가 존재한다는 걸 의미합니다.
(참고로 우리가 컴퓨터에서 int a = 7; 이런 식으로 입력했다면, 메모리상에서는 07 00 00 00 이런식으로 기록됩니다. 컴퓨터라는 기계가 2byte이상의 값을 처리할 때 상위바이트부터 쓸 것인가 하위바이트부터 쓸 것인가의 2가지 방식을 가질 수 있는데 Intel계열은 우리가 눈으로 볼때 앞(즉 상위 바이트)부터 1바이트식 적어 올라가는 방식을 택하고 있습니다. MAC과 같은 모토롤라 계열의 경우는 그와 반대입니다. 자세한건 Endian 개념을 찾아보시면 도움이 될껍니다.)
맨 마지막 라인인 00,00,00,00 은 끝을 나타내는 값이며, 이것도 데이터 갯수에 포함됩니다. 그럼 이제 중간값들의 의미를 보겠습니다.
2b,00,7d,00 의 경우 간단히 7d 라는 값을 가지는 키를 2b 값의 키로 인식해라 라는 의미입니다.(구지 복잡하게 알 이유는 없어 보입니다.)
그럼 각 숫자는 어떤 키를 의미하는 것인가...이건 사실 키보드마다 다르다고 합니다. 물론 어느정도 정해진것도 있지만, 특별하게 키보드마다 추가되거나 변경되는게 있다는거죠. 대개는 키보드 드라이버들이 이런걸 처리해준다고 합니다만, 우리는 목적에 맞도록 그것마저 바꿔보자는거니..
http://www.passmark.com/ftp/keytest.exe
위의 프로그램을 받아서 실행하면 직관적으로(^^) 어떤 키를 눌렀을때 무슨 값을 가지는가를 알 수 있습니다. 어플 실행시 상단의 여러 값중 bios key code에서 나오는 0x?? 의 16진수 값이 누른 키의 해당 scancode값이 되는 것이죠. 그럼 바꾸고자 하는 키의 값을 찾아내서 2개의 키를 같도록 한다거나 키를 죽인다거나 (그냥 00 으로 처리하면 죽어버리는것 같습니다.) 뭐 별짓이 다 되겠죠.
정리하면 예로 든 레지값을 해석하면
2b,00,7d,00,\ - backspace왼쪽키(7d)를 '\'(2b)키로 변경
36,00,73,00,\ - 오른쪽 shift 옆 일어'ろ'(73)를 right shift(36)로 변경
...
이런식이 되는 겁니다.
뭐 평상시에는 거의 쓸 일이 없겠지만, 가끔 괜히 자기 손에 편하도록 키보드 배열을 바꿔보고 싶은 분들은 실험해보시는 것도 좋을 듯하네요. 어짜피 막해보다가 키보드가 이상한 것 같아 싶으면 저 레지스트리 값을 지워버리면 그만입니다.^^;
윈도우라는게 쓰면 쓸 수록 참 별난 것들이 많다는 걸 이럴때 느끼네요. 기왕 쓰는것 잘 개조해서 나에게 맞도록 쓰면 편하다~ 뭐 이런 이야기였습니다.ㅎㅎ
ps) 나중에 홈피가 제대로 동작하면 이런 팁도 많이 정리해둘 생각입니다. 영 기억력이 시원치 않아서리..ㅎㅎ
- Tag
- keyscan, 레지스트리
- Response
- No Trackback , 4 Comments or Reply







