우선 제 블로그에 방금 쓴 것을 여기에도 써서
말투가 혹시 딱딱하다면 죄송합니다;;;


======================================================================



보통 키보드를 윈도우에 연결 시킬때 101키나 103 키로 인식을 하여 들어간다.

허나 한국키보드가 아닌 단순 영문배열의 키보드라면
한/영 전환키가 없기 마련이다.  

이때  ps/2로 연결을 하게 되면 자동으로 RAlt 키가 한/영키로 작동을 하게 마련이다.

헌데, 가끔 usb로 키보드를 연결을 하다보면 RAlt키가 한/영으로 작동을 하지 않게 되는 경우가 있다.




본인은 그런경우가 있다는 경우만 웹상으로 말을 들어서 알고 있다가
그 동안 한번도 겪지 않은 RAlt의 한/영 전환 문제를 회사컴에 usb키보드를 연결했다가 겪게 되었다.



보통 이 문제를 해결하기 위하여 두가지 방법이 있을 것이다.
우측 Alt키를 한/영 키로 매핑한다.
좌측 Shift + Space 조합을 한/영 키로 매핑한다.

이것은 개인 취향의 문제이다.
다만 본인은 평소에, 이벌식, 세벌식 전환, 한/영 전환, 한/일 전환..
그리고 한,일 전환은 로마입력식 같은 키캡 하나가 일문하나에 대응하는 방법도 있고
IME에서 영단어 조합으로 일문자를 만들어 내는 방법도 있기에 여기에 추가적으로 키가 더 필요하고 하니....

"Shift+Space,  한/영" 두 가지 방법을 다 이용하고 있다.
가끔 한/영을 누르는게 빠를때도 있고 .. 일반적으로 토프레 리얼포스는 한/영 키를 누르기 힘들며
한국식 마소 키보드는 한영키가 스페이스를 잘라낸 위치에 붙어 있기에
보통 한/영을 누르는 위치는 도대체가 익숙해 지지 않기 때문에 LShift + Space 조합을 즐겨쓰는 편이다.



헌데 이와 같은 방법을 쓰려면 레지스트리를 수정한후 제붓을 하거나
레지를 수정하기 싫다면 트레이 아이콘이나 메모리를 먹는 상주 프로그램이 올라가 있어야 했다.


본인은 레지를 수정하기는 싫고,
평소 AutoHotKey를 쓰고 있었으므로 다른 메모리 먹는 프로그램을 사용하기도 싫어서
결국 AutoHotKey를 이용하여 문제를 해결하기로 했다.



우선 RAlt 를 한/영 으로 변환하는 방법은 다음과 같다.
기존 우측 Alt가 한/영키로 매핑되어 있을때 키보드 후킹을 해볼때 잡히는 가상키값과 스캔키값은
vk : 15    sc : 138  이었다.
그리고 같은 키보드를 껴도 RAlt가 한/영 으로 매핑이 안되어 있을 때에는
vk : A5   sc : 138 같은 식으로 올라갔다.  

따라서 다음과 같이
RAlt::Send {vk15sc138}

해주면 끝이다.
<어떤 상황, 그리고 키보드, 본체라도 저 위의 값과 같다.>




그 다음은 LShift + Space를 한/영 키로 작동시키는 것이었는데
AutoHotKey는 윈도키, alt, Ctrl 등등의 키가 조합되지 않고 일반키들끼리 조합이 될때는
조합하는데 있어서 약간  신경을 써야 할 부분이 있다.
이때는 키를 붙여 쓰지 않고 조합되는 키 사이에 다음과 같이 & 를 사이에 넣어주면 된다.

LShift & Space::Send {vk15sc138}

단, 이렇게 한다면 LShift를 먼저 누른 상태에서 Space를 눌렀을 때에만 한/영키가 작동하게 된다.

따라서 완벽하게 Type3 과 같이 작동시키고 싶다면

LShift & Space::Send {vk15sc138}
Space & Lshift::Send {vk15sc138}

이렇게 두 줄을 써 주어야 한다.
<단, 윈도우 98, me 등등의 NT커널이 아닌 곳에서는 & 기호가 먹지 않는다>


Run 등이 들어간 실행방식이 아닌 단순한 매핑이므로 return은 붙이지 않아도 된다.
이게 끝이다.