ACUTALIZADOR DE PROGRAMA VIA WEB
Publicado: 17 Sep 2013, 09:41
Que tal amigos creo que no hay algo como esto ya publicado en este foro, les explico
Este es un programita que checa una web y ve su contenido, que en teoria solo puede ser dos cosas (1 ó 2) 1 significa que esta activa una actualización y 2 que no hay disponible ninguna actualizacion, tambien esta por default el codigo (0) que es error al conectarse a la web de verificacion.
si el programa detecta que hay actualizacion, la busca y la descarga de la web en formato .osc y la copia en la carpeta seleccionada y la renombra a formato .san
pero espero lo vean ustedes mismos, analisen el codigo y me digan de que manera lo podemos mejorar:
CODIGO DEL INI status.ini
EXITOS Y ESTARE ESPERANDO COMENTARIOS O MODIFICACIONES PARA HACERLO MAS INTERESANTE.
Este es un programita que checa una web y ve su contenido, que en teoria solo puede ser dos cosas (1 ó 2) 1 significa que esta activa una actualización y 2 que no hay disponible ninguna actualizacion, tambien esta por default el codigo (0) que es error al conectarse a la web de verificacion.
si el programa detecta que hay actualizacion, la busca y la descarga de la web en formato .osc y la copia en la carpeta seleccionada y la renombra a formato .san
pero espero lo vean ustedes mismos, analisen el codigo y me digan de que manera lo podemos mejorar:
Código: Seleccionar todo
#include <inet.au3>
Func _InetIniRead($s_url, $v_section, $v_key, $v_default = -1)
If $v_default = -1 Or $v_default = Default Then $v_default = ""
Local $s_text = _INetGetSource($s_url)
If $s_text = "" Then Return SetError(1, 0, $v_default)
$s_text = @CRLF & $s_text & @CRLF
$v_section = StringStripWS($v_section, 7)
Local $a_data = StringRegExp($s_text, "(?s)(?i)\n\s*\[\s*" & $v_section & "\s*\]\s*\r\n(.*?)(?m:\[|\z)", 3)
If IsArray($a_data) = 0 Then Return SetError(2, 0, $v_default)
Local $a_read = StringRegExp(@LF & $a_data[0], "(?s)(?i)\n\s*" & $v_key & "\s*=(.*?)\r", 1)
If IsArray($a_read) = 0 Then Return SetError(3, 0, $v_default)
Return $a_read[0]
EndFunc
$file = _InetIniRead("http://tuwebsite.com/updates/status.ini", "update", "01")
ConsoleWrite($file & @CRLF)
; Cheque si el fichero abierto es leído correctamente
If $file = 0 Then ;simboliza error en la función inetiniread se ocasiona si no logra leer el archivo
MsgBox(16, "Error", "No se pudo conectar con el servidor")
Exit
ElseIf $file = 2 Then ;simboliza que no hay actualizaciones
MsgBox(16, "Error", "No hay actualizaciones disponibles")
Exit
ElseIf $file = 1 Then ;simboliza que si hay actualizaciones y procede a descargarla e instalarla
Local $hDownload = InetGet("http://tuwebsite.com/updates/update.osc", @AppDataDir & "\Thinstall\config\update.osc", 1, 1)
Do
Sleep(250)
Until InetGetInfo($hDownload, 2) ; Revisa si la descarga ya termino.
Local $nBytes = InetGetInfo($hDownload, 0)
InetClose($hDownload) ; Cierra.
FileDelete(@AppDataDir & "\Thinstall\config\update.san") ; borra la anterior actualizacion
FileMove(@AppDataDir & "\Thinstall\config\update.osc", @AppDataDir & "\Thinstall\config\update.san", 9); renombra de .osc a .san
MsgBox(0, "ACTUALIZACION EXITOSA", "Se descargo la actualización exitosamente, total descargado: " & $nBytes & "Bytes")
EndIf
Código: Seleccionar todo
[update]
01=1