He utilizado por años el magnífico sistema que propuso en su dia Biel Maimó, para las actualizaciones automáticas de nuestros programas via internet
https://bielsys.blogspot.com/2009/04/ac ... ca-de.html
Con las ultimas actualizaciones de Windows 11 y algunas de Windows 10 me encuentro con una serie de restricciones que estos sistemas van imponiendo en cuanto a seguridad
Entiendo que para actualizar un programa via internet existen almenos 2 enfoques :
1) Instalador externo (inno setup, nsis, ...)
- Comprobar via red que la version remota sea posterior a la version local
Bajar un programa instalador, que elimine nuestra app exe, escriba la nueva y lance de nuevo nuestro programa
Para ello, dicho instalador preguntará al usuario si acepta y que necesita cerrar el programa en ejecución para poder proceder
Si el usuario deniega, entonces la actualización no prospera
Un ejemplo lo tenemos con las actualizaciones del editor Notepad++, que nos avisa de una nueva versión pero que si no la aceptamos, no se actualiza
Como ventaja al aceptar la nueva instalación, es que el proceso se podrá realizar sin problemas de firewall, advertencias, etc
2) Actualizar a la 'Biel'
- Comprobar por FTP si existe nueva version (por ejemplo, por comparacion de fecha del exe y tamaño)
Bajar por FTP el exe del programa renombrado, por ejemplo anteponiendo "_"
Lanzar un ejecutable con ShellExecute (Biel lo escribe en C) y al mismo tiempo cerrar con un PostQuitMessage nuestro programa en ejecucion
El anterior exe borra el programa en ejecución, renombra el programa bajado quitando "_" inicial y llama a ejecutar la nueva versión
Hasta ahora, este sistema aportaba la ventaja de que las actualizaciones no dependen de la aceptacion del usuario
Cada vez los sistemas Windows son más restrictivos con estas prácticas, hay que dar muchas explicaciones a los usuarios, plantearse firmar digitalmente nuestros programas, etc
En definitiva, abro debate... como actualizan sus programas ?
Saludos