visual tipo tiempo studio sistema reloj real poner obtener mostrar hora form fecha dato como c# wix windows-installer

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



reloj c# windows form (5)

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 forma "correcta" de acceder a esa información es usar :: MsiGetProductInfo (). PInvoke debería ser trivial.


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!