[Problema] Autoejecutar autoupdate

#1
Hola gente de gs, como va.

Estoy armando un proyecto y le metí este AutoUpdate, lo configuré todo bien y baja el parche como debe ser. El problema está en que cuando vos tenes el VEREXE.txt del ftp en 1 por ejemplo, y el Update.ini del cliente también en 1 (porque ya actualizaste previamente), cuando vas a abrir el cliente te vuelve a tirar que tenes actualización y así formando un bucle infinito que no te deja pasar del cargando.

Cabe destacar que de un aporte de por ahí implementé el autoejecutar autoupdate cuando haya actualización disponible. Metí en el frmCargando un Inet1 y al fondo tengo esto:
Código:
Function Analizar()
            On Error Resume Next
          
            Dim iX As Integer
            Dim tX As Integer
            Dim DifX As Integer
          
'LINK1            'Variable que contiene el numero de actualización correcto del servidor
                iX = Inet1.OpenURL("blablabla/VEREXE.txt")
            'Variable que contiene el numero de actualización del cliente
                tX = GetVar(App.path & "\INIT\Update.ini", "INIT", "X")
            'Variable con la diferencia de actualizaciones servidor-cliente
                DifX = iX - tX
            If Not (DifX = 0) Then
MsgBox "Hay una actualizacion pendiente. Acuerdate de actualizar URGENTE para poder jugar correctamente."
Call ShellExecute(Me.hWnd, "open", App.path & "/AutoUpdate.exe", "", "", 1)
End
End If
End Function
Osea no encuentro el error, si dice if not difx = 0, entonces por qué me tira este bucle infinito?
El código del update está tal cual viene, solo con los datos del ftp y el nombre del exe editados como debe ir.

Saludos.
PD: intenté buscar de varias maneras por si ya había un post de estos, pero no encontré nada.
 

MAB

Symphony of Enchanted Lands
#2
Usa puntos de interrupción y corre el código de tu update, revisa que la información del servidor host le llegue correctamente y que la información del cliente se lea correctamente.
 

ReFyCuLx

Newbie Lvl 1
#3
Recuerdo que me paso lo mismo, fijate como dice MAB de poner punto de interrupcion cuando lee verexe.txt y cuando lee Update.ini.
Lo que me pasaba cuando vi este tema es que el Update.ini al querer escribirle el nuevo numero de version no lo hacia por temas de permisos, fijate ejecutando el autoupdate como administrador.
 

darkotaru

Destructor Lvl 2
#4
Permiso, proba asi:


Código:
Function Analizar()
          
            Dim iX As Integer
            Dim tX As Integer
            Dim DifX As Integer
            Dim strsX As String
            Dim F As Integer
'Variable que contiene el numero de actualización correcto del servidor
                iX = Inet1.OpenURL("http://blablabla.ucoz.es/VEREXE.txt")
  
F = FreeFile
    Open App.path & "\INIT\Update.ini" For Input As F
     tX = Input$(LOF(F), #F)
    Close #F
              
            'Variable con la diferencia de actualizaciones servidor-cliente
                DifX = iX - tX
            If Not (DifX = 0) Then
MsgBox "Hay una actualizacion disponible."
Call Shell(App.path & "/Autoupdate.exe")
End
Else
MsgBox "No hay actualizaciones disponibles."
End If
End Function
 
#5
Gracias maestro, y también a los demás que me tiraron ideas. Lo único que tuve que cambiar fue el 'Call Shell' por el que ya tenía, porque en modo debug me anda pero ya generado cuando se debería abrir el autoupdate tira error de procedimiento.

Solucionado :D
 
'Me Gusta': MAB
Arriba