2013-03-29 1 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"); 

바이너리 표시하려면, 두 개의 16 진수로 표시 할 수 있습니다 :

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

@Decker 따라서 캐스트를 사용하지 않고 문자열에 객체를 할당하면 코드가 컴파일되지 않아야합니다. –

관련 문제