为什么我在使用process.start(“regedit.exe”)时看不到'wow6432node'?

时间:2013-08-14 06:12:56

标签: c# windows process 64-bit regedit

我遇到了一些问题..在C#

当我通过我的代码执行regedit.exe时,在x64 OS系统中它没有显示

HKLM\SOFTWARE\'wow6432node'

但是当我执行regedit.exeWindow Key + R时,它会显示wow6432node

我怎样才能显示wow6432node?我不知道怎么出现......

这是我的代码

        private void RegeditCall_Click(object sender, EventArgs e)
        {
            Process.Start("C:\\Windows\\regedit.exe");
        }

        private void RegeditCall_Click(object sender, EventArgs e)
        {
            Process.Start("regedit.exe");
        }

2 个答案:

答案 0 :(得分:0)

你试过了吗?

System.Diagnostics.Process.Start("regedit.exe");

我已经使用LinqPad在x64机器上测试了这段代码并且正常工作。

Here is orginal topic

修改

这可能很有用 http://www.rhyous.com/2011/01/24/how-read-the-64-bit-registry-from-a-32-bit-application-or-vice-versa/

答案 1 :(得分:0)

我遇到了同样的问题:检查您的C#应用​​程序是不是为x86构建的。

如果32位进程执行regedit,那么windows将启动32位版本的regedit。在这个版本中,HKLM \ Software实际指向HKLM \ Software \ Wow6432Node。

如果你使用start - >跑 - > regedit(假设您运行64位版本的Windows),这将启动64位版本的regedit。现在您可以看到HKLM(或HKCU)Wow6432Node密钥存在。