Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C删除注册表项中的所有值#_C#_Outlook_Add In - Fatal编程技术网

C# 使用C删除注册表项中的所有值#

C# 使用C删除注册表项中的所有值#,c#,outlook,add-in,C#,Outlook,Add In,我很难找到一种方法来删除注册表项中的所有值,而不实际删除注册表项本身。我不希望必须删除密钥,因为我不希望将适当的权限重新添加回密钥 我正在尝试运行一个小方法来简单地清除以下值: HKEY\U CURRENT\u USER\Software\Microsoft\Office\15.0\Outlook\Resilience\DisabledItems 我们有一个Outlook定期粘贴在这里的插件,我们的技术人员必须深入这一关键点,删除这些值,重新启动Outlook,一切都很好 我想我们可以只确定值的

我很难找到一种方法来删除注册表项中的所有值,而不实际删除注册表项本身。我不希望必须删除密钥,因为我不希望将适当的权限重新添加回密钥

我正在尝试运行一个小方法来简单地清除以下值:

HKEY\U CURRENT\u USER\Software\Microsoft\Office\15.0\Outlook\Resilience\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);
            }
        }

为什么不删除整个密钥,然后将其作为空密钥重新添加?请重新阅读我的部分问题:我不想删除密钥,因为我不想将适当的权限重新添加回密钥。显然,如果这是唯一的选择,那么就这样吧。你能展示一下你的尝试吗?似乎需要使用
RegistryKey.GetValueNames()
RegistryKey.DeleteValue
来枚举值,然后删除它们。右上角有一个搜索功能。输入C#注册表循环