首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >遍历注册表项并读取注册表值

遍历注册表项并读取注册表值
EN

Stack Overflow用户
提问于 2015-01-08 21:27:37
回答 1查看 808关注 0票数 0

我想迭代特定路径的值并读取它们。我试过这个

代码更新的

代码语言:javascript
复制
RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Internet Explorer\IntelliForms\Storage2", true);
        var names = key.GetValueNames();
        for (int i = 0; i < names.Length; i++)
            {
                Console.WriteLine(names[i]);
                byte[] test = ObjectToByteArray(key.GetValue(names[i]));
                var value = Convert.ToBase64String(test);
                Console.WriteLine(value);
            };

通常,字符串value应该是加密的二进制文件。

更新:因此@Peter建议我必须将字节数组转换为字符串。为此,我创建了这个小函数来将对象key.GetValue转换为一个字节数组。

代码语言:javascript
复制
public static byte[] ObjectToByteArray(Object obj)
        {
            if (obj == null)
                return null;
            BinaryFormatter Binaryform = new BinaryFormatter();
            MemoryStream MemStream = new MemoryStream();
            Binaryform.Serialize(MemStream, obj);
            return MemStream.ToArray();
        }

然后像彼得建议的那样转换成字符串。

因此,在字节数组转换之后,它应该返回一个二进制字符串。我得到的是一些奇怪的组合字母和数字,但它不是二进制。

在这方面有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2015-01-08 21:32:59

获得"System.Byte[]“是因为您以byte[]为实例并在其上调用ToString()。这将不会将字节数组的内容转换为文本,因为您将使用类似于Convert.ToBase64StringEncoding.UTF8.GetString的内容。在this SO question中对这个主题有更多的讨论。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27849817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档