2010-06-01 128 views
0

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

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); 
} 

我有问题 -

  • DWORD
  • ExpandString
  • 二进制
  • 多串

(?作为字节[]这是一样的)后来因为我想写入一个文件的值,我需要转换所有di不同类型的字符串。

+0

您能否提供您正在执行的代码? – MPritchard 2010-06-01 06:37:00

回答

0

您应该看看Registry.GetValue()说明。在这个例子中,所有这些类型都被转换成一个字符串。

+0

这就是即时通讯使用,但后来当我提取的内容(我从关键使用getValue())即时通讯获取关于奇怪的字符输出错误。 我有一个错误是与unicode字符'u \ 144'或什么有关? – Tom 2010-06-01 06:49:24

+0

@Tom:在问题中包含这些信息是一个好主意,以便人们知道您实际需要解决什么问题。 – 2010-06-01 06:50:28

+0

对不起,我认为这个问题是由于我在我的问题中提到的问题,即无法读取的数据。 – Tom 2010-06-01 06:52:18

1

将注册表值作为字符串写入文件已经有一个体面的标准。在Regedit.exe中,选择一个键后使用File + Export来查看看起来像什么。文档可在KB article中找到。

+0

我几年前用它来编写WindowsCE 3.0的导入程序和导出程序 – Oliver 2010-06-02 10:22:01

相关问题