web-dev-qa-db-ja.com

レジストリWow6432Nodeリダイレクトを回避する

Microsoft.Win32.RegistryKeyを使用してc#でいくつかの単純なレジストリキーを挿入しようとしていますが、パスは自動的に次のように変わります。

HKEY_LOCAL_MACHINE\SOFTWARE\Test

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Test

私はグーグルを試しましたが、曖昧で紛らわしい結果しか得られません。誰かが以前にこの問題に対処したことがありますか?いくつかのサンプルコードはかなり見習われるでしょう。

29
user1071461

RegistryKey.OpenBaseKeyを使用して、この問題を解決できます。

var baseReg = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
var reg = baseReg.CreateSubKey("Software\\Test");
25
Hui

.regファイルを使用してそれを解決する方法がわかりません。ただし、次のようにBATファイルでのみ:

コマンドラインの最後に/reg:64を追加する必要があります。例:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background" /v "OEMBackground" /t REG_DWORD /d 0x00000001 /f /reg:64

ソース: Wow6432NodeおよびSccmを介してレジストリ設定を64ビットシステムに展開する方法

9
Pedro77

WOW64では、特定のレジストリキーがリダイレクトされます(ソフトウェア)。 32ビットまたは64ビットのアプリケーションがリダイレクトされたキーに対してレジストリ呼び出しを行うと、レジストリリダイレクタが呼び出しをインターセプトし、キーの対応する物理的なレジストリの場所にマッピングします。詳細については、「 レジストリリダイレクター 」を参照してください。

RegistryView Enumeration on RegistryKey.OpenBaseKey Method を使用して、32ビットビューを明示的に開き、HKLM\Software \に直接アクセスできます。

8
Jacob Seleznev