2013-11-04 25 views
5

誰も私が"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData"というレジストリキーにアクセスできない理由を教えてもらえますか?HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion Installer UserDataにアクセスする

GetSubKeysNames"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer"に照会すると、"Secure"の値が1つだけ返されます---->他のすべてのサブキーはどこにありますか?

ありがとうございました。

+1

数行のコードを投稿してください。どのようにしてRegistryKeyインスタンスを構築しますか? – helb

+1

実際の質問は「なぜHKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Windows¥CurrentVersion¥Installer¥UserData?」というレジストリキーにアクセスしようとしていますか?その情報は内部OSデータです。 –

答えて

12

64ビットバージョンのWindowsでプログラムを実行しており、32ビットモードで強制的に実行されている可能性が高いです。レジストリリダイレクタは、実際にHKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Nodeのキーを読み取らせます。そして、はい、それはまた、Microsoft \ Windows \ CurrentVersion \ Installerキーを持っていますが、それはかなり空です。 Regedit.exeを使用して比較します。

最も簡単な修正は、強制を削除することです。 [プロジェクト+プロパティ]、[ビルド]タブで、ターゲットプラットフォーム設定をAnyCPUに設定します。 VS2012以上を持っている場合は、「32ビットを優先」オプションの選択を解除します。リリース構成に対してこの手順を繰り返します。 に32ビットモードで実行する必要がある場合は、.NET 4+ RegistryKey.OpenBaseKey()メソッドを使用してRegistryView.Registry64を渡すことができます。

関連する問題