Frage

Gibt es eine verwaltete API eine Anwendung installieren Datum mit dem Produkt-GUID abrufen?

Danke. Scott

War es hilfreich?

Lösung

Der „richtige“ Weg, um diese Informationen zu erhalten, ist die Verwendung :: MsiGetProductInfo (). PInvoke sollte trivial sein.

Andere Tipps

Danke Rob! Ich habe ein vollständiges C # Beispiel unten hinzugefügt.

    [DllImport("msi.dll", CharSet = CharSet.Unicode)]
    static extern Int32 MsiGetProductInfo(string product, string property, [Out] StringBuilder valueBuf, ref Int32 len);

    static void Main(string[] args)
    {
        Int32 len = 512;
        var builder = new StringBuilder(len);
        MsiGetProductInfo("{0db93d2f-a9e7-417f-9425-5e61e82c0868}", "InstallDate", builder, ref len);

        var installDate = DateTime.ParseExact(builder.ToString(), "yyyyMMdd", CultureInfo.InvariantCulture);

        Console.WriteLine(installDate);
    }

Ich weiß nicht, über jede API, die das tun, aber man könnte versuchen, den Wert aus der Registrierung direkt zu lesen. Überprüfen Sie den folgenden Schlüssel:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{product-id}
    InstallDate = 20081004

Die Informationen unter dem Deinstallieren Schlüssel gespeichert werden angezeigt z.B. in der Systemsteuerung -> Software entfernen.

Der Install Schlüssel in der Registrierung ist nicht immer da, vor allem, wenn das Programm nicht mit durch MSI installiert wurde (wie zB Adobe Flash Player Plugin, DAEMON Tools, 7-ZIP, Picasa, Teamviewer, Mozilla Firefox ).

Eine andere „richtige“ Art und Weise ist das Erstellungsdatum einiger Datei, die Sie kennen, „sicher“ zu erhalten, ist von Installer hinzugefügt. In meinem Fall ist es „unins000.exe“ die (Wieder-) von Inno Setup v5 erstellt. Kein PInvoke beteiligt, sondern verwenden Sie einfach die Fileinfo existiert und Creation Eigenschaften!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top