C#: Wie man die Installation von Programmen genau wie in der Systemsteuerung-Programme und Funktionen?

Ich lese eine Menge Informationen bekommen-Programme. Keiner der algorithmen hat zu tun, was ich will. Ich brauche, um die installierten Programme genau wie in control panel.

Also habe ich benutzt:

  1. WMI Win32_Product Klasse. Es zeigt nur die msi-installierten Programme.
  2. Registry-Schlüssel. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall. Wieder, einige Programme werden nicht angezeigt in der Systemsteuerung einige Programme in der Systemsteuerung angezeigt, nicht in diesem registry-Knoten.

So, gibt es jemanden in dieser Welt, die wussten, mit welchem Algorithmus die Systemsteuerung verwenden, um die Anzeige installierte Programme?

UPD1:ja, ich nutze 64 bit, ich weiß, es ist ein weiterer Knoten für 64bit installiert Programme "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" aber der folgende code listet twise HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall Abschnitt, seltsam...

var Programme = new Liste(); 
string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; 
mit (Microsoft.Win32.RegistryKey key = Registrierung. "LocalMachine" .OpenSubKey(registry_key)) 
{ 
foreach (string subkey_name in key.GetSubKeyNames()) 
{ 
mit (RegistryKey Unterschlüssel = key.OpenSubKey(subkey_name)) 
{ 
var name = (string)Unterschlüssel.GetValue("DisplayName"); 
if(!string.IsNullOrEmpty(name)) 
{ 
Programme.Hinzufügen(name); 
} 
} 
} 
}

registry_key = @"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"; using (Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key)) { foreach (string subkey_name in key.GetSubKeyNames()) { using (RegistryKey subkey = key.OpenSubKey(subkey_name)) { var name = (string)subkey.GetValue("DisplayName"); if (!string.IsNullOrEmpty(name)) { programs.Add(name); } } } } foreach (var program in programs.OrderBy(x => x)) { Console.WriteLine(program); }

InformationsquelleAutor der Frage MelnikovI | 2013-03-20

Schreibe einen Kommentar