Question

Existe-t-il une API gérée permettant de récupérer la date d'installation d'une application à l'aide du GUID du produit?

Merci. Scott

Était-ce utile?

La solution

Le "bon" " moyen d’obtenir cette information est d’utiliser :: MsiGetProductInfo (). PInvoke devrait être trivial.

Autres conseils

Merci Rob! J'ai ajouté un exemple complet en C # ci-dessous.

    [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);
    }

Je ne connais aucune API qui puisse le faire, mais vous pouvez essayer de lire la valeur directement dans le registre. Vérifiez la clé suivante:

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

Les informations stockées sous la clé de désinstallation sont affichées, par exemple. dans le Panneau de configuration - > Ajouter ou supprimer des programmes.

La clé InstallDate du registre n’est pas toujours présente, en particulier lorsque le programme n’a pas été installé avec MSI (par exemple, plug-in Adobe Flash Player, Outils DAEMON, 7-ZIP, Picasa, TeamViewer, Mozilla Firefox ).

Un autre "bon" Pour cela, vous devez obtenir la date de création d’un fichier que vous connaissez déjà. est ajouté par l'installateur. Dans mon cas, il s'agit de "unins000.exe". qui est (re) créé par Inno setup v5. Aucun PInvoke n'est impliqué, mais utilisez simplement les propriétés Exists et CreationTime de FileInfo!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top