Get install Datum verwalteten Code
-
03-07-2019 - |
Frage
Gibt es eine verwaltete API eine Anwendung installieren Datum mit dem Produkt-GUID abrufen?
Danke. Scott
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!