如何在 C# 中删除注册表值?

Posted

技术标签:

【中文标题】如何在 C# 中删除注册表值?【英文标题】:How to delete a registry value in C#? 【发布时间】:2021-06-18 22:02:39 【问题描述】:

我想知道如何删除 C# 中的注册表值,如“SOFTWARE\Microsoft\Cryptography”和我想删除 MachineGuid 的 Cryptography 键。我试过这个(“使用 Microsoft.Win32;”)

        string keyName = @"Software\Microsoft\Cryptography";
        using (RegistryKey key = Registry.CurrentUser.OpenSubKey(keyName, true))
        
            if (key == null)
            
                MessageBox.Show("Value Cannot Be Found");
            
            else
            
                key.DeleteValue("MachineGuid");
            
         

但是没有用。 (我的意思是 MachineGuid 值仍然存在)

【问题讨论】:

“没用”是什么意思? 我的意思是 MachineGuid 值仍然存在 你没有收到错误等? 您的进程需要以管理员权限运行才能执行此操作。删除该键可能是个坏主意 - 它可能会破坏某些东西! @Matthew 会吗?他们正在访问 HKEY_CURRENT_USER。我认为删除密钥可能是个坏主意。 【参考方案1】:

这应该可以工作

            string keyName = @"Software\Microsoft\Cryptography";
        using (RegistryKey key = Registry.LocalMachine.OpenSubKey(keyName, true))
        
            if (key == null)
            
                MessageBox.Show("Value Cannot Be Found");
            
            else
            
                key.DeleteValue("MachineGuid");
            
         

虽然lol我不建议删除它

【讨论】:

但我认为我总是删除游戏的 machineguid,但实际上什么也没发生:D 哇哇哇哇哇哇哇哇哇哇哇哇哇 - 没有同性恋 很好,祝你好运粉碎某人的互联网 不不,我在游戏中使用它来解禁:D 我能再问一件事吗?

以上是关于如何在 C# 中删除注册表值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 检查注册表值是不是存在?

C# Winform打包部署时添加注册表信息实现开机启动.

在 Qt 中,如何使用 QSettings 来创建/修改/删除 Windows 注册表项/值?

如何在卸载 MSI 时删除单个注册表值?

C# 通用注册表操作方法

如何从本地机器\软件中删除密钥?