Página 1 de 1

Verificar si existe un link/url para actualizar software

Publicado: 07 Abr 2014, 22:48
por yasmany
Hola de nuevo, mis preguntas constantes es que estoy inmerso en la creación de un software de beneficio publico que mas bien me sirve para ahorrarme ciertos trabajos.
He pensado en actualizar la versión vía Internet utilizando InetGet
Pero mientras cranéo la lógica del algoritmo he pensado lo siguiente.

Como verifico si el link existe del que voy a descargar la nueva versión del software?
Espero su pronta respuesta.

Re: Verificar si existe un link/url para actualizar software

Publicado: 07 Abr 2014, 23:04
por Dany
Que bien que andes animado con eso mueves el foro :smt033

algo simple podria ser asi:

Código: Seleccionar todo

Local Const $sMiversion="1.0"

Local $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")

$oHTTP.Open("GET", "http://textuploader.com/tdxa/raw", False)

$oHTTP.Send()

$oReceived = $oHTTP.ResponseText

$oReceived=StringMid($oReceived,StringInStr($oReceived,'"')+1,3)

$oHTTP = 0


if $oReceived==$sMiversion Then
	MsgBox(0,"","Estoy Actualizado")
Else
	MsgBox(0,"","No Estoy Actualizado, debe Actualizar")
EndIf


Fijate lo que hay en el link.

espero cojas la idea.

saludos

Re: Verificar si existe un link/url para actualizar software

Publicado: 07 Abr 2014, 23:43
por yasmany
Gracias por tus prontas respuestas Dany, muy agradecido por tu gran ayuda.
Quisiera entender un poco mas el código para no solo copiar y pegar.
Habrá tu disponibilidad de tiempo para comentar dentro del código para que sirven algunas lineas de código o variables puestas.
Las ayudas que muy buenamente me has brindado las he entendido, pero esta se me ha echo un poco difícil, disculpa mi ignorancia.

Re: Verificar si existe un link/url para actualizar software

Publicado: 08 Abr 2014, 18:29
por Dany
Perdon por lo tarde ya me había ido a casa. te dejo explicado.

Código: Seleccionar todo

Local Const $sMiversion="1.0" ;Declaramos una variable constante que sera la version actual de nuestro programa

Local $oHTTP = ObjCreate("winhttp.winhttprequest.5.1") ;Creamos una referencia a un objecto en este caso "winhttp.winhttprequest.5.1" que nos permite hacer peticines Http

$oHTTP.Open("GET", "http://textuploader.com/tdxa/raw", False) ;utilizamos el metodo Open con la istruccion "GET" para abrir una coneccion para leer el texto plano de la pagina

$oHTTP.Send() ;enviamos la peticion al servidor

$oReceived = $oHTTP.ResponseText ;obtenemos el texto retornado

$oReceived=StringMid($oReceived,StringInStr($oReceived,'"')+1,3) ;esto es manejor de cadenar para delimitar y obtener solo la version 2.3 esto lo haces como quieras.

$oHTTP = 0 ;liberamos el objecto

if $oReceived==$sMiversion Then ;COmparamos si las cadenas son iguales. osea la version que leo del servidor y la version de mi aplicacion.
   MsgBox(0,"","Estoy Actualizado")
Else
   MsgBox(0,"","No Estoy Actualizado, debe Actualizar")
EndIf


Tambien lo puedes hacer con InetRead como dijiste en tu primer mensaje. algo asi:

Código: Seleccionar todo

#include <MsgBoxConstants.au3>

Example()

Func Example()

    Local $bData = InetRead("http://textuploader.com/tdxa/raw") ;Lees los datos desde la url

    ;los bytes leidos los retorna @extended
    Local $iBytesRead = @extended

    ; conviertes a cadena
    Local $sData = BinaryToString($bData)

    ; Mouestras el resultado
    MsgBox($MB_SYSTEMMODAL, "", "The number of bytes read: " & $iBytesRead & @CRLF & @CRLF & $sData)
EndFunc   ;==>Example



Saludos

Re: Verificar si existe un link/url para actualizar software

Publicado: 08 Abr 2014, 20:13
por yasmany
Gracias Dany por tan generosa explicación, de esa forma me has enseñado también aparte de brindarme la ayuda.
En este momento me encuentro optimizando el código de mi aplicación y en unas horas probaré el código facilitado.
Por cierto no tienes de que disculparte, es bueno saber de personas que les gusta apoyar al que menos sabe.
Gracias :smt045

Re: Verificar si existe un link/url para actualizar software

Publicado: 08 Abr 2014, 20:28
por Dany
;) cualquier duda pregunta. que con gusto te responderé. tambien puedes poner el codigo de tu aplicacion y decirte que mejroar. me fije que no sueles declarar las variables. :smt011

saludos :smt027