我用同样的方法读取注册表HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\run信息
和HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\下面每个程序的DisplayName信息
就用OpenSubKey ,GetSubKeyNames,GetValueNames,GetValue 这4个方法
为什么第一个RUN信息可以读取
而每个程序的DisplayName读不出来呢?
运行时没有错误,但就是没有读到信息.
请那位明白,解释一下,谢谢!
和HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\下面每个程序的DisplayName信息
就用OpenSubKey ,GetSubKeyNames,GetValueNames,GetValue 这4个方法
为什么第一个RUN信息可以读取
而每个程序的DisplayName读不出来呢?
运行时没有错误,但就是没有读到信息.
请那位明白,解释一下,谢谢!
{
this.listView1.Items.Clear();
RegistryKey hklm = Registry.LocalMachine;
RegistryKey software = hklm.OpenSubKey("SOFTWARE");
RegistryKey no1 = software.OpenSubKey("Microsoft");
RegistryKey no2 = no1.OpenSubKey("Windows");
RegistryKey site = no2.OpenSubKey("CurrentVersion");
RegistryKey sitekey = site.OpenSubKey("Uninstall");
string[] sValName = sitekey.GetSubKeyNames(); for (int i = 0; i < sValName.Length; i++)
{
ListViewItem v_item = new ListViewItem(sValName[i]); string temp_string = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall" + sValName[i], "DisplayName", "Nothing)");
v_item.SubItems.Add(temp_string); this.listView1.Items.Add(v_item);
就是这么写的,在listView1里就能显示一列:是Uninstall下面每个子键名称,DisplayName显示不了!我刚学C#,请指点一下,到底怎么回事啊?谢谢
{
this.listView1.Items.Clear();
RegistryKey hklm = Registry.LocalMachine;
RegistryKey software = hklm.OpenSubKey("SOFTWARE");
RegistryKey no1 = software.OpenSubKey("Microsoft");
RegistryKey no2 = no1.OpenSubKey("Windows");
RegistryKey site = no2.OpenSubKey("CurrentVersion");
RegistryKey sitekey = site.OpenSubKey("Uninstall");
foreach (string sValName in sitekey.GetSubKeyNames())
{
ListViewItem v_item = new ListViewItem(sValName);
v_item.SubItems.Add(sitekey.OpenSubKey(sValName).GetValue(
"DisplayName", "Nothing)").ToString());
listView1.Items.Add(v_item);
}
}