2013-03-29 37 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")獲得的值可能是一個字節數組。

請考慮將其轉換爲十六進制像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