1. 일반적인 프로그램을 통한 레이아웃 변경에서는 다음의 레지스트리 값이 변경됩니다
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Keyboard Layout
* 이 값을 변경하는 프로그램으로는 다음과 같은 프로그램이 있습니다.
  * SharpKeys2 http://www.kbdmania.net/board/zboard.php?id=tipntech&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=681
   * .Net framework 2.0이 깔려야 합니다
  * 또각또각님의 배열 변환 프로그램 http://www.kbdmania.net/board/zboard.php?id=tipntech&page=1&sn1=&divpage=1&sn=on&ss=on&sc=on&keyword=%B6%C7%B0%A2%B6%C7%B0%A2&select_arrange=headnum&desc=asc&no=670
   * 미리 정해진 배열 6개에 대해 변경이 됩니다.
  * KeyTweak http://www.kbdmania.net/board/zboard.php?id=tipntech&page=1&sn1=&divpage=1&sn=on&ss=on&sc=on&keyword=%B8%C5%C7%CE&select_arrange=headnum&desc=asc&no=469
   * 꽤나 강력한 기능을 제공합니다만, 사용법은 링크의 글을 확인하세요.
    * (링크 들어가면 Leaf님의 글을 확인하라는 링크가 있군요. ^^)

2. 현재 로긴중인 사용자만을 위한 레이아웃 변경은 다음 프로그램으로 가능합니다.
HKEY_CURRENT_USER/keyboard layout
* xkeymacs http://www.kbdmania.net/board/zboard.php?id=tipntech&page=1&sn1=&divpage=1&sn=on&ss=on&sc=on&keyword=%B8%C5%C7%CE&select_arrange=headnum&desc=asc&no=545
  * windows의 대부분의 프로그램에서 emacs binding을 지원하는게 목적인 프로그램이나 부가 기능으로 키보드 레이아웃 변경 기능이 있습니다.
  * tray icon을 오른쪽 클릭하셔서 Keyboard layout 링크를 선택하시면 104키 배열 + wk(아마 wake up?), slp(sleep일듯?;;), Pw(파워 버튼일듯)의 107키만 설정할 수 있습니다.

레지스트리 값이 둘 다 있을 때에는 HKEY_CURRENT_USER의 값이 최종적으로 적용되는 거 같습니다. 일반적인 프로그램으로 HKEY_LOCAL_MACHINE의 값을 수정할 수 있으니 혼자 쓰는 시스템이라면 편하게 수정하시고, 많이 바꿔 쓰는데 공용으로 사용할 수도 있는 컴퓨터라면 HKEY_CURRENT_USER값을 사용하는 것도 좋을 듯 합니다.