2015-10-29 101 views
0

,當我使用此代碼從註冊表中讀取值:C#,壞字符讀取註冊表值

appManufacturer = (string)subKey.GetValue("Publisher"); 

這是結果: enter image description here

在註冊表中的值如下: enter image description here

當我在調試過程中查看字符串的值是「Microsoft \ 0」。爲什麼? 「\ 0」來自哪裏?我在這裏做錯了什麼?

+0

它一直存在... [相關閱讀:什麼是\ 0符號在C字符串是什麼意思?(http://stackoverflow.com/q/4711449/1324033) – Sayse

+0

@Sayse雖然解釋它是什麼,它不能解釋爲什麼它在那裏。如果註冊管理機構存儲空字符,則可以期望.NET庫自動處理該字符。這就是說,我已經通過.NET訪問過註冊表項,並且從來沒有遇到過null-char,所以對這個入口看起來有點可疑。 – Rob

+1

@Rob - 我更想解釋它是什麼,而不是提供解決方案 – Sayse

回答

-1

以下代碼將允許您獲取註冊表值。

string keyname = "SAVCE"; 
    Console.WriteLine(Read(keyname));  

    public static string Read(string KeyName) 
    { 
     using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(@"Software\Symantec\InstalledApps")) 
     { 
      return (string)registryKey.GetValue(KeyName); 
     } 

    } 
+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的基本部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – Marusyk