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

本文关键字:System Byte 注册表 | 更新日期: 2023-09-27 18:06:31

在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[]。如何输出键的准确值?我做错了什么?

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

由于您的值是二进制的,因此您只需转换为byte[]即可获得值:

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

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

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

你从regKey.GetValue("KEY")得到的值可能是一个字节数组。

请考虑像这篇文章一样将其转换为HEX