我承认我是 C# 新手。我正在努力创建一种使用 .NET 删除注册表项的方法。该方法采用一个字符串参数,其中包含要删除的完整 key 。以下是我尝试执行的操作(显然)行不通的示例:
namespace NameHere
{
class Program
{
static void Main(string[] args)
{
RegistryKey hklm = Registry.LocalMachine;
hklm = hklm.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\")
string strKey=”Test123”;
string fullPath = hklm + "\\" + strKey;
deleteRegKey(fullPath);
}
static void deleteRegKey(string keyName)
{
Registry.LocalMachine.DeleteSubKey(keyName);
}
}
}
我尝试了其他一些迭代,并在谷歌上搜索解决方案,但到目前为止,还无法将各个部分组合在一起。任何帮助将不胜感激。另外,任何关于为什么我蹩脚的尝试无法帮助澄清我的知识差距的解释都会很棒。
最佳答案
这个例程实际上应该是一句台词,例如:
Registry.LocalMachine.DeleteSubKey( @"SYSTEM\ControlSet...\etc...");
您不需要打开RegistryKey对象,因为Registry.LocalMachine已经为您打开了。
如果您确实需要打开RegistryKey 对象来执行其他操作,请注意RegistryKey 实现了IDisposable,因此现在您已经创建了一个对象,无论如何您都有责任处置它。因此,您必须用 try { ... } 包围代码,并在 finally block 中调用 Dispose()。幸运的是,可以使用 using 更优雅地在 C# 中进行编码:
using( RegistryKey key = Registry.LocalMachine.OpenSubKey(...) ) {
...
}
关于C# 问题创建删除注册表项的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/865638/