2017-03-22 2 views
0

So fand ich die Lösung, eine Liste der installierten Programme von hier zu bekommen. Get installed applications in a systemC# Unter Windows, wie bekomme ich eine Liste der Verzeichnisse der installierten Programme

Aber ich frage mich, ob ich das installierte Verzeichnis von jedem von ihnen bekommen kann? Ich brauche es, weil ich alle ausführbaren Dateien für dieses Programm finden müsste.

Irgendwelche Vorschläge würden geschätzt.

+0

Haben Sie versucht, die "InstallLocation" Wert der Unterschlüssel zu überprüfen - es sollte zumindest für Nicht-Treiber/Drucker/etc vorhanden sein. Sachen. – Filburt

Antwort

1

Sie müssen alle installierten App von "HKLM \ Software \ Microsoft \ Windows \ Currentversion \ Uninstall" Code Hier wird die Probe

private string FindByDisplayName(RegistryKey parentKey, string name) 
    { 
     string[] nameList = parentKey.GetSubKeyNames(); 
     for (int i = 0; i < nameList.Length; i++) 
     { 
      RegistryKey regKey = parentKey.OpenSubKey(nameList[i]); 
      try 
      { 
       if (regKey.GetValue("DisplayName").ToString() == name) 
       { 
        return regKey.GetValue("InstallLocation").ToString(); 
       } 
      } 
      catch { } 
     } 
     return ""; 
    } 

RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall"); 
string location = FindByDisplayName(regKey, "MSN"); 
MessageBox.Show(location); 
finden

diesem Beispiel wird die Display keyvalue auf Ihre Eingangsnamen vergleichen, Wenn der Wert gefunden wird, geben Sie den Schlüsselwert InstallLocation zurück.

Mit freundlichen Grüßen,

Thiyagu Rajendran

** Bitte beachten Sie die Antworten als Antworten markieren, wenn sie und unmark helfen, wenn sie es nicht tun.

+0

TLDR: Die Lösung besteht darin, Key: InstallLocation anstelle von Key: DisplayName zu verwenden – libra

Verwandte Themen