在命令行模式下运行时写入HKLM

时间:2014-05-27 09:32:02

标签: vb.net registry 32bit-64bit wow64

我有一个程序将值写入注册表。

我有GUI模式和命令行模式。在GUI模式下运行时,程序可以完美地写入HKLM(x86 build config)

但是,当我在命令模式下运行程序时,值会写在wow6432节点下。我做了一些研究,发现wow6432节点用于存储已在64位机器上运行的32位应用程序的注册表值。

我不会认为在命令行模式下运行会从64位变为32 - 但似乎是。

不确定从哪里开始,希望有人可以指出我正确的方向。

Build Config

1 个答案:

答案 0 :(得分:0)

经过一番研究 - 我发现在命令行模式下运行时,注册表重定向器重定向到wow6432节点。

为了绕过这个,我使用了:

RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)

然后直接打开64位视图,并允许写入HKLM而不会被重定向到wow6432节点。