2010-10-12 16 views
8

Ich würde gerne wissen, wo der Installationspfad für eine Anwendung ist. Ich weiß, es ist normalerweise in ... \ Programme ... aber ich denke, einige Leute installieren es an verschiedenen Orten. Ich kenne den Namen der Anwendung.Wie kann ich den Installationspfad einer anderen Anwendung programmgesteuert abrufen?

Vielen Dank.

+0

möglich Duplikat [Bestimmen Sie 3rd Party Application Installation Verzeichnis] ​​(http://stackoverflow.com/questions/1309142/determine-3rd-party-application-installation-directory) –

Antwort

12

Der ideale Weg, den Installationspfad eines Programms (unter Windows) zu finden, besteht darin, es aus der Registrierung zu lesen. Die meisten Installationsprogramme erstellen einen Registrierungsschlüssel für das Programm, das den Installationspfad enthält. Wo genau dieser Schlüssel steht und wie er benannt wird, hängt vom jeweiligen Programm ab.

Um zu ermitteln, ob das Programm einen Schlüssel in der Registrierung hat, öffnen Sie "regedit" und verwenden Sie die Option Bearbeiten> Suchen, um einen Schlüssel mit dem Programmnamen zu suchen. Wenn ein solcher Schlüssel vorhanden ist, können Sie ihn mit der RegistryKey-Klasse in der .NET Framework-Bibliothek lesen.

Wenn das Programm keinen Registrierungsschlüssel hat, dann ist eine andere Option nur, den Benutzer zu bitten, die .exe-Datei mit dem OpenFileDialog zu finden, obwohl dies offensichtlich nicht ideal ist.

10

Viele (die meisten?) Programme erstellen einen App Paths Registrierungsschlüssel. Werfen Sie einen Blick auf

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 
4

Wenn Sie die betreffende Anwendung kennen (im Gegensatz zu einer beliebigen Anwendung verglichen) Registrierungsschlüssel die wahrscheinlich die beste Option ist (falls vorhanden).

Das Installations in seiner eigenen benutzerdefinierten „Installationspfad Schlüssel“ irgendwo (so tun fündig wie Fara erwähnt) könnte setzen oder es könnte für installierte Programme in der Deinstallation Abschnitt sein, so dass Sie überprüfen können:

  • HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ Currentversion \ Uninstall

Aber beachten sie, dass jede neue Version von einer Installation könnte den Schlüssel ändert sie schreibt, sowohl für einen benutzerdefinierten Schlüssel oder für den deinstallation Eintrag. Das Überprüfen der Registrierung sollte wahrscheinlich nur für eine bekannte Installationsversion erfolgen.

TEP

0

Sie können MSI verwenden (ich es hier https://github.com/alialavia/MSINet eine C# Wrapper geschrieben). Hier ist ein einfaches Beispiel:

var location = ""; 
foreach (var p in InstalledProduct.Enumerate()) 
{ 
    try 
    { 
     if (p.InstalledProductName.Contains("AppName"))      
     { 
      location = p.InstallLocation; 
      break; 
     } 
    } 
    catch { } 
} 
Verwandte Themen