Pregunta

¿Existe una API administrada para recuperar la fecha de instalación de una aplicación usando el GUID del producto?

Gracias. Scott

¿Fue útil?

Solución

El " propio " La forma de obtener esa información es usar :: MsiGetProductInfo (). El anuncio debe ser trivial.

Otros consejos

Gracias Rob! He añadido un ejemplo completo de C # a continuación.

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

No conozco ninguna API que lo haga, pero puedes intentar leer el valor directamente del Registro. Compruebe la siguiente clave:

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

La información almacenada en la clave de desinstalación se muestra, por ejemplo, en el Panel de control - > Añadir o eliminar programas.

La clave InstallDate en el registro no siempre está allí, especialmente cuando el programa no se ha instalado a través de MSI (como por ejemplo Adobe Flash Player Plugin, herramientas DAEMON, 7-ZIP, Picasa, TeamViewer, Mozilla Firefox ).

Otro " propio " La forma es obtener la fecha de creación de algún archivo que sepa que " seguro " es agregado por el instalador. En mi caso es " unins000.exe " que es (re) creado por Inno setup v5. No interviene PInvoke, sino que simplemente utiliza las propiedades de FileInfo Exists y CreationTime.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top