我创建了以下注册表项(通过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!我已经回去检查密钥确实存在多次 - 但仍然是相同的结果。我将假设我的代码在某处出现问题?
答案 0 :(得分:2)
您是否在64位计算机上并且您的项目设置为x86架构?在这种情况下,验证您所声明的密钥是否存在于HKCU \ Software \ Wow6432Node下...因为每个路径都被重定向到此32位进程注册表...
答案 1 :(得分:1)
您不应在传递给HKEY_CURRENT_USER
的字符串中包含Registry.CurrentUser.OpenSubKey()
。而是使用
string regPath_Key = @"Software\Microsoft\Windows\CurrentVersion\test";