我目前正在编写一个程序,该程序将读取部分 Windows 系统注册表,但是这些键的某些值是 System.Byte[] 类型,当我尝试解码这些值时,我可以生成一个包含一些可读字符的字符串,该字符串使但大多数字符串都是乱码。我尝试了几种编码类型,但似乎都没有产生正确的结果。我只是想知道是否有任何已知的东西可以解决这个问题。这是我的代码
public void getMRU()
{
String mru = @"Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU";
RegistryKey rk = Registry.CurrentUser.OpenSubKey(mru);
foreach (string skName in rk.GetSubKeyNames())
{
RegistryKey sk = rk.OpenSubKey(skName);
System.Text.Encoding enc = System.Text.Encoding.UTF8;
string myString = enc.GetString((Byte[])sk.GetValue("0"));
Console.WriteLine(myString)
}
}
正确的解码和解释因键而异。对于二进制值,没有强制格式,应用程序可以自由存储它们想要的任何字节。你必须知道你所读到的内容才能解释它。如果关键内容已记录,那么您可以应用文档规范来解码内容。如果没有记录,那么你就没有必要阅读它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)