使用 C# 删除注册表项中的所有值
Delete all values within a registry key using C#
我无法找到一种方法来删除注册表项中的所有值而不实际删除注册表项本身。我宁愿不必删除密钥,因为我宁愿不处理将适当的权限重新添加回密钥。
我正在尝试使用一个小方法 运行 只需清除以下值:
HKEY_CURRENT_USER\Software\Microsoft\Office.0\Outlook\Resiliency\DisabledItems
我们有一个 Outlook 定期粘在这里的加载项,我们的技术人员必须深入研究这个键并删除值,重新启动 Outlook,一切都很好。
我想我们可以确定值的确切名称,但这不是很有趣 :) 并且因为值在此键中的命名方式,不清楚哪个指向正确的加载项。
我同意 Ron Beyer 的观点。我认为这可能是您要找的东西?根据需要编辑注册表路径和 HKLM/HKCU。
string keyPath64Bit = "SOFTWARE\Wow6432Node\Krondorian";
RegistryKey localMachine = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey key64Bit = localMachine.OpenSubKey(keyPath64Bit, true);
if (key64Bit != null)
{
var namesArray = key64Bit.GetValueNames();
foreach (string valueName in namesArray)
{
key64Bit.DeleteValue(valueName);
}
}
我无法找到一种方法来删除注册表项中的所有值而不实际删除注册表项本身。我宁愿不必删除密钥,因为我宁愿不处理将适当的权限重新添加回密钥。
我正在尝试使用一个小方法 运行 只需清除以下值:
HKEY_CURRENT_USER\Software\Microsoft\Office.0\Outlook\Resiliency\DisabledItems
我们有一个 Outlook 定期粘在这里的加载项,我们的技术人员必须深入研究这个键并删除值,重新启动 Outlook,一切都很好。
我想我们可以确定值的确切名称,但这不是很有趣 :) 并且因为值在此键中的命名方式,不清楚哪个指向正确的加载项。
我同意 Ron Beyer 的观点。我认为这可能是您要找的东西?根据需要编辑注册表路径和 HKLM/HKCU。
string keyPath64Bit = "SOFTWARE\Wow6432Node\Krondorian";
RegistryKey localMachine = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey key64Bit = localMachine.OpenSubKey(keyPath64Bit, true);
if (key64Bit != null)
{
var namesArray = key64Bit.GetValueNames();
foreach (string valueName in namesArray)
{
key64Bit.DeleteValue(valueName);
}
}