visual - tipo de dato fecha en c#




Obtener la fecha de instalación desde el código administrado (4)

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.

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

Gracias. Scott


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 ).


Otra forma "correcta" es obtener la fecha de creación de algún archivo que usted sabe porque el instalador agrega "seguro". En mi caso es "unins000.exe" que es (re) creado por Inno setup v5. No involucra a PInvoke, ¡simplemente utiliza las propiedades Exists y CreationTime de FileInfo!





windows-installer