c# - 如何使用 DeleteSubkeyTree 递归删除注册表项
问题描述
代码:
try
{
RegistryKey SQMRegKey = Registry.LocalMachine.OpenSubKey("CurrentControlSet\\Control\\WMI\\Autologger", true);
//SQMRegKey.DeleteSubKey("SQMLogger");
SQMRegKey.DeleteSubKeyTree("SQMLogger");
SQMRegKey.Close();
}
catch (Exception ex)
{
MessageBox.Show(this, ex.ToString());
}
总是抛出异常 System.NullReferenceException:Object reference not set to an instance of an object
解决方案
OpenSubKey可能会失败,在这种情况下,返回值为null
. 您使用引用,即SQMRegKey
不检查它是否实际指向有效对象。
try
{
var SQMRegKey = Registry.LocalMachine.OpenSubKey("CurrentControlSet\\Control\\WMI\\Autologger", true);
if(SQMRegKey != null)
{
SQMRegKey.DeleteSubKeyTree("SQMLogger");
SQMRegKey.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(this, ex.ToString());
}
推荐阅读
- react-native - React-Native axios https
- r - R错误:将'list' RHS强制为'double'以匹配目标列的类型
- postman - Postman - 仅对多个请求执行第一次迭代的第一个请求 * 多次迭代
- python - 加入两个模型并在 Django 中连接?
- c++ - 必须非常量别名参数及其默认参数常量
- arrays - SwiftUI如何过滤从json文件填充的动态数组
- android - 如何将数据插入多对多关系表并检索最后一个 id 在方法接受两个参数的情况下?
- amazon-web-services - 针对大型作业的 Kubernetes (GKE/AWS/Azure) 扩展
- visual-studio - 迁移到新 CPU 后,Visual Studio 社区找不到任何库
- r - RShiny:创建一个数据表,允许在单元格中显示图像并在顶部进行过滤功能