将不同的注册表值类型转换为字符串?

时间:2010-06-01 06:35:30

标签: c# registry

我遍历注册表,获取键的值并将它们存储为字符串。我发现有很多不同的类型。其中一些类型导致我的文件流编写器失败。是否可以将以下所有内容转换为字符串形式。实际数据值并不重要,只能区分不同的值。

  • DWORD
  • ExpandString
  • Binary(这与byte []相同吗?)
  • 多串

-

if (String.Compare(SubKey.GetValueKind(v[i]).ToString(), "String") == 0)
{
    String s = SubKey.GetValue(v[i]).ToString();

    RegistryKeyDataValue rkdv = new RegistryKeyDataValue(s); 
    rkdv.incrementNumberOfTimesUsed();
    rkdv.setTypeOfData("S");

    r.addDataValue(rkdv);
    r.setCurrentDataValue(s);

    String hash = "";
    h.setHashData(hash); 

    hash = h.HashString(s);
}

我以后遇到问题,因为我想将值写入文件,我需要将所有不同类型转换为字符串。

2 个答案:

答案 0 :(得分:1)

将注册表值作为字符串写入文件已经有了一个不错的标准。在Regedit.exe中,选择一个键后使用File + Export来查看它的外观。文档可在此KB article中找到。

答案 1 :(得分:0)

您应该查看Registry.GetValue()说明。在示例中,所有这些类型都转换为字符串。