2011年12月15日木曜日

レジストリ HKCR ,HKCU ,HKLM の関係

レジストリ ルートキーの関係 ページに保存版をまとめています。

間違って

……

いた…




HKEY_CURRENT_USER はログインユーザーの設定
HKEY_LOCAL_MACHINE はコンピューターの既定の設定

というのは理解していたのですが、いままで使い分けができていなかったです。

HKLMも使っていた理由として

  • Windows の場合、ほとんど個人ユーザーですので、どちらに設定しても大差がないと思っていました。
  • HKLM なら値を 1 つ加えれば良い手軽なものでも、HKCU にはそこまでのキーを作成しなくてはならないものが多く、手順やレジストリの使用量が増えてしまう。
  • ユーザーが元々どこまでカスタマイズしていたのか分からないので、元に戻す手順を書きにくい。
  • 参考にした世界中のサイトさんが、そう書いているので大して疑問に思わなかった。(ただし改めて調べてみますと、「それは間違いである」と、ちゃんと指摘しているサイトさんもありました)


HKLM は既定の設定ですので、なるべくそのままにしておいたほうが良いです。

値のデータの変更は HKCU に同じ値を作成すればできますし、HKLM のキーや値を無効にするには、Attributes 値 ,LegacyDisable 値 ,Blocked キー などでたいてい可能で、アクセス権の変更も必要ありません。


HKEY_CLASSES_ROOT は関連付けの設定

HKLM と HKCU の Classesキー と同じだと理解していましたが、正しくは、

HKLM\SOFTWARE\ClassesHKCU\Software\Classes をマージされたものが表示され、同じ項目がある場合は HKCU が優先されます。

逆に HKCR を変更した場合は、HKLM\SOFTWARE\Classes に格納され、HKCU に該当するキーが存在する場合は HKCU\Software\Classes に格納されます。

ということで
HKEY_CURRENT_USER\Software\Classes の編集だけで良かったです。


いましめを兼ねてページにまとめておきました。


それで、これまでの投稿をどうしようかと考えたのですが…
実際に効果があって間違っている訳ではないこと、そちらのが簡単で適している場合があること、「間違っていても知りませんよ~」と伏線が張ってあることw、だれも見ていないことを考慮してそのままにすることにしました。

あ、いつも来てくれる方、ありがとうございます!

まだ世に出ていないだろうカスタマイズを、たくさん用意してありますので、これからもちょくちょく見に来てやってください。

レジストリ ルートキーの関係