2015-10-29 99 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