"Simple" is "Best"

開発時に詰まったところや 調べた結果日本語での情報が無かったり古かったりした場合に自分用のメモとして高校生(?)が更新していくブログ

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

f:id:bigbuddha:20170104072000p:plain

勉強タイム

 勉強がてら、一つ一つを読み解いていく

まず、一行目の008つはヘッダのようなのでそのまま入力

続いて、二行目

これは2つに分けて02 00 00 0038 00 3A 00に分けられる

一つ目の02 00 00 00は変更するキーが2つですよということ

 

ここで一つ疑問

1(Caps Lock) + 1(Alt) = 2

確かにその通りであるが

ここで一つ疑問

なぜ02が一番最初に来ているのか

普通に考えて最後に来るのが普通ちゃうんかい┌(`Д´)ノ)゚∀゚)

って思っていたが、ふと「リトル・エンディアン」を思い出して

あぁ、なるほどね~

なんて思った

「リトル・エンディアン」がわからない方は

Wikipediaに聞くなり、ググっていただくと幸せになれるかもしれない

 

無事疑問は解決し・・・

では次

 38 003A 00

最初の値が変更後(出力)の役割、次に変更前(入力)の役割

リトル・エンディアンだから、383A

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の数とか)ので

今は書かないでおく

今後わかれば書き足すなり、新たに記事を作るなりしよう