Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/11/2011, 14:44
Avatar de A.H.H
A.H.H
 
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Aviso de Actualizacion en aplicacion portable

Hola se puede hacer de una forma bastante sencilla:

1º - subes un archivo llamado por ejemplo version.txt al sitio web donde tengas alojada la actualizacion para la descarga y dentro del archivo version.txt escribes la nueva version del exe de tu aplicacion, por ejemplo 1.0.1 (suponiendo que la anterior sea la 1.0.0) en la primera linea del archivo.

2º - añadimos a tu proyecto la funcion URLDownloadToFile, que se encarga de descargar ese archivo de texto (version.txt) de tu sitio web a la carpeta temp del ordenador.

3º - Comparamos la version que pone en el archivo de texto con la version de nuestra aplicacion.exe, apartir de hay podemos sacar los msgbox que queramos o preguntar si quiere descargar la actualizacion etc..........o no actualizar etc.....


Saque un ejemplo e ideas de una vez que escribio ERBUSON en el foro.

ACONTINUACION UN EJEMPLO DE CODIGO PARA COMPROBAR SI HAY UNA NUEVA VERSION DISPONIBLE, EL RESTO LO DE DESCARGAR LA APLICACION TE LO DEJO A TI:

Cita:
Option Explicit
'funcion que descarga un archivo desde un sitio web al pc donde le digas'

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Private Sub Command1_Click()
On Error GoTo error 'si hay un error o no tenemos internet'

Dim a As Long
Dim VersionEXE As String 'variable para recoger nuestra version actual'
VersionEXE = (App.Major & "." & App.Minor & "." & App.Revision)

'nos conectamos para descargar el archivo en la carpeta temp del pc'

a = URLDownloadToFile(0, "http://www.tu sitio web.com/version.txt", Environ("Temp") & "\version.txt", 0, 0)

Dim NuevaVersionExe As String 'variable para recoger la version del archivo de texto'
leerarchivo Environ("Temp") & "\version.txt", NuevaVersionExe
MsgBox "tu version es la " + VersionEXE
MsgBox "la nueva version es la " + NuevaVersionExe

'comparamos las dos versiones'

'atencion en el archivo de texto solo tiene que haber'
'una linea que ponga 1.0.1 o la nueva version'
'si hay otros caracteres lo dara como que es distinto al comprobar'

If Not VersionEXE = NuevaVersionExe Then
MsgBox "Hay una nueva version disponible", vbInformation, "Actualización"
Else
MsgBox "tu " + App.EXEName + ".exe" + " esta actualizado a la ultima version disponible!."

Exit Sub
End If
'tratamiento de error por si no tenemos conexion a internet'

error:
MsgBox "Error de conexion en la actualizacion", vbExclamation
Exit Sub
End Sub

Public Sub leerarchivo(path As String, salida As String)
Dim Linea As String
If path = vbNullString Then Exit Sub
salida = ""
Open path For Input As #1
Line Input #1, Linea
salida = Linea
Close
End Sub



Private Sub Form_Unload(Cancel As Integer)
Unload Me
End Sub

espero te sirva salu2


nota: pon tu url donde tu sitio web en el codigo y el archivo de texto que subas es muy importante que dentro haya una sola linea con el numero de la version ejemplo(1.0.1) o la que sea. si hay otros caracteres o no esta igual tendras errores.