删除子键错误(C#)

时间:2011-06-04 14:12:16

标签: c# registry key

我创建了以下注册表项(通过regedit复制):

  

HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \测试

我现在想要删除这个注册表项,所以...我一直在使用以下代码并遇到一个小错误。

RegistryKey regKey;

    string regPath_Key = @"Software\Microsoft\Windows\CurrentVersion\test";

    regKey = Registry.CurrentUser.OpenSubKey(regPath_Key, true);

    if(regKey != null)   // Always returns null, even though the key does exist.
    {
        Registry.CurrentUser.DeleteSubKey(regPath_Key, true);
    }

我遇到的问题是if(regKey != null) 行总是返回null!我已经回去检查密钥确实存在多次 - 但仍然是相同的结果。我将假设我的代码在某处出现问题?

2 个答案:

答案 0 :(得分:2)

您是否在64位计算机上并且您的项目设置为x86架构?在这种情况下,验证您所声明的密钥是否存在于HKCU \ Software \ Wow6432Node下...因为每个路径都被重定向到此32位进程注册表...

答案 1 :(得分:1)

您不应在传递给HKEY_CURRENT_USER的字符串中包含Registry.CurrentUser.OpenSubKey()。而是使用

string regPath_Key = @"Software\Microsoft\Windows\CurrentVersion\test";