2013-03-29 2 views
1

В C# я пытаюсь получить значение раздела реестра. Это двоичный ключ. Код, я используюКогда я получаю значение из раздела реестра, я получаю System.Byte []

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[]. Как вывести точное значение ключа? Что я делаю не так?

ответ

0

Значение, которое вы получаете от regKey.GetValue("KEY"), может быть массивом байтов.

Пожалуйста, обратите внимание преобразовать его в HEX как this article

2

Вы просто бросить в byte[], чтобы получить значение, так как ваше значение является бинарной:

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

Для отображения двоичной, вы можете отобразить в двух шестнадцатеричных цифр:

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

@Decker Таким образом, ваш код не должен компилироваться, поскольку вы назначаете объект строке без литья – 2013-03-29 06:50:48