Win7でレジストリをいじってキー配列を変える
今の時期にWin7の話をするというのも時代遅れなきがするが
メモとして書いておく
最初に
当然の事ながら、レジストリをいじるので自己責任のもとで
バックアップは必須
これからすることによってパソコンがどうにかなったとしても
私は責任を取れない
今回は「Caps Lock」を「Alt」としてみる
参考サイトはこちら
How to Disable Caps Lock Key in Windows 7, 8, 10, or Vista
Windows/TIPS/レジストリを修正してCAPSLOCKの割り当て変更 - yanor.net/wiki
Windows Vista/XP/2000/NT4.0のキー配列の変更方法
主に二つ目を参考に話をすすめる
本題
レジストリ エディタを使って
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
にScancode Map
という名でバイナリ値を作成
そこに以下の内容を入力
00 00 00 00 00 00 00 00
02 00 00 00 38 00 3A 00
00 00 00 00
勉強タイム
勉強がてら、一つ一つを読み解いていく
まず、一行目の00
8つはヘッダのようなのでそのまま入力
続いて、二行目
これは2つに分けて02 00 00 00
と38 00 3A 00
に分けられる
一つ目の02 00 00 00
は変更するキーが2つですよということ
ここで一つ疑問
1(Caps Lock) + 1(Alt) = 2
確かにその通りであるが
ここで一つ疑問
なぜ02
が一番最初に来ているのか
普通に考えて最後に来るのが普通ちゃうんかい┌(`Д´)ノ)゚∀゚)
って思っていたが、ふと「リトル・エンディアン」を思い出して
あぁ、なるほどね~
なんて思った
「リトル・エンディアン」がわからない方は
Wikipediaに聞くなり、ググっていただくと幸せになれるかもしれない
無事疑問は解決し・・・
では次
38 00
と3A 00
最初の値が変更後(出力)の役割、次に変更前(入力)の役割
リトル・エンディアンだから、38
と3A
38
がAltのキーコードで3A
がCaps Lockのキーコードである
有名どころを抑えておく
名称 | 入力値 |
---|---|
Alt(Right) | 38E0 |
Alt(Left) | 3800 |
Caps Lock | 3A00 |
Ctrl(Right) | 1DE0 |
Ctrl(Left) | 1D00 |
Esc | 0100 |
NumLock | 4500 |
ScrollLock | 4600 |
Win(Right) | 5CE0 |
Win(Left) | 5BE0 |
他のキーのコードは参考サイト二つ目に書かれている
ここではあえて実際に入力する際の値を表しているので
キーコードと言うと語弊がある
そこは適時読み直していただけたらと(;・∀・)
そして最後にNULL埋め
これで完了
複数キーを変更するときの値が
いまいち理解しきれていない(末尾のNULLの数とか)ので
今は書かないでおく
今後わかれば書き足すなり、新たに記事を作るなりしよう