c# visual Obtener la fecha de instalación desde el código administrado




tipo de dato fecha en c# (4)

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

Gracias. Scott


No sé sobre ninguna API que haga eso, pero podría intentar leer el valor directamente desde el Registro. Compruebe la siguiente clave:

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

La información almacenada en la tecla Desinstalar se muestra, por ejemplo, en el Panel de control -> Agregar o quitar programas.


Gracias Rob! He agregado 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);
    }

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, DAEMON Tools, 7-ZIP, Picasa, TeamViewer, Mozilla Firefox ).


La forma "correcta" de acceder a esa información es usar :: MsiGetProductInfo (). PInvoke debería ser trivial.





windows-installer