当我从注册表项获取值时,我得到System.Byte []

时间:2013-03-29 06:34:27

标签: c# registry output

在C#中,我正在尝试获取注册表项的值。它是二进制密钥。我正在使用的代码

RegistryKey regKey = Registry.LocalMachine;
            regKey = regKey.OpenSubKey(@"Software\Wow6432Node\Bohemia Interactive Studio\ArmA 2 OA\");

            if (regKey != null)
            {
                string value = regKey.GetValue("KEY").ToString();
                Console.WriteLine(value);
            }
            else
            {
                return;
            }

当它写入控制台时,它输出的全部是System.Byte[]。如何输出密钥的确切值?我做错了什么?

2 个答案:

答案 0 :(得分:2)

您只需转换为byte[]以获取值,因为您的值为二进制:

byte[] value = (byte[])regKey.GetValue("KEY");

要显示二进制文件,您可以用两个十六进制数字显示:

 for (int i = 0; i < value.Length; i++)
     Console.Write(" {0:X2}", value[i]);

答案 1 :(得分:0)

regKey.GetValue("KEY")获得的值可能是字节数组。

请考虑将其转换为HEX,如this article