Parece ser que de esta manera funciona, pero ya se sabe que todos los caminos conducen a Roma
Al Iniciar el programa, memorizará la Fecha del EXE que está ejecutanto, despúes con un timer o cuando uno quiera verifica si hay una nueva versión y da el aviso, sale, etc
En mi caso, al mantener una Red de usuarios, si los cambios no son muy importantes, simplemente renombraré el .exe original por el .$$$ y pondré el nuevo exe. Los usuarios que entren después de la actualización, intentarán borrar el .$$$ por si ya no está en uso y a medida que salgan y entren estarán actualizados, sólo cuando .$$$ (el primer .exe) no esté en uso será borrado.
Código:
Option Explicit
Private Sub Form_Load()
NuevaVersion
End Sub
Private Sub Command1_Click()
If NuevaVersion Then MsgBox "Existe una nueva version"
End Sub
Public Function NuevaVersion() As Boolean
Static FechaDelExe As Date
On Error Resume Next
If FechaDelExe = 0 Then
' La primera vez que se llame a NuevaVersión, memorizará la fecha del EXE
FechaDelExe = FileDateTime(App.Path & App.EXEName & ".exe")
' Borrará si puede y existe el .$$$ si alguien lo usa no lo borrará y seguirá
Kill App.Path & App.EXEName & ".$$$"
Exit Function
End If
' Si la fecha guardada y la del exe son diferentes, es una nueva versión
If FileDateTime(App.Path & App.EXEName & ".exe") <> FechaDelExe Then NuevaVersion = True
End Function