阅读注册表

时间:2013-04-28 11:03:48

标签: c# winforms contextmenu

我写了以下代码:

RegistryKey _Key = Registry.ClassesRoot.OpenSubKey("SystemFileAssociations", true);
foreach (String s in names)
{
    System.Windows.Forms.MessageBox.Show("Done.===================" + s);
}
_Key.Close();

会打印一个等于.txt

的条目

但是,当我这样做时,即尝试像这样访问/HKCR/SFA/.txt密钥:

RegistryKey rootKey = Registry.ClassesRoot.OpenSubKey("SystemFileAssociations//.txt", true);
rootKey.Close();

我收到以下错误:

SystemNullReferenceException: Object reference not set to an instance of an object

1 个答案:

答案 0 :(得分:2)

抛出异常是因为rootKey为null(OpenSubKey操作失败,因为密钥名称中使用了//而不是\\)。 使用以下代码:

using(RegistryKey rootKey = Registry.ClassesRoot.OpenSubKey("SystemFileAssociations\\.txt", true)) {
    if(rootKey != null) { 
        // do staff
    }
}