プロプログラマ -Flex,Air,C#,Oracle,PHP-

プログラマーを職業としてます。 Flex,Air,C#,Oracle,PHPの言語ノウハウを中心に情報発信していきます

64ビット版Windowsの場合のレジストリ注意

64bit版のWindowsでは、レジストリの構造が32bit版と微妙に異なっています。
微妙すぎて32ビットのレジストリキーを見ているのか64ビットのレジストリキーを見ているのか区別がつきません。

64bit版で、スタートメニューのファイル名を指定して実行から、regedit.exeを起動した場合は、64ビット版のレジストリエディタが起動します。
ですが、起動したものを見ても区別はつきません。

この時見えているのは64ビットのキーであり、32ビットのキーは奥の方に格納されている状態です。

↓ココにまとまっています。
HKEY_LOCAL_MACHINE\Software\WOW6432Node

あえて32ビット版のキーのみを参照/編集したい場合は、
32ビット用のレジストリエディタを起動します。
%systemroot%\syswow64\regedit

起動しても相変わらず区別がつきません・・・

非常にややこしい。

C#でレジストリを操作する場合、RegistryKey を使用しますが、
64ビットOS上で書き込んだ場合は、32ビットレジストリの方に書き込まれます。
(ターゲットCPUをx86にしている場合)

書いたはずなのに、レジストリエディタで見ると書かれていないという状況になります。
そんな時は、上記の32ビットのキーを探してみてください。

 

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です