elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 01:01  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  ¿Bajar archivo y saber cuando terminó?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Bajar archivo y saber cuando terminó?  (Leído 502 veces)
extreme69

Desconectado Desconectado

Mensajes: 166


Be BlackHat but don't forget your principles.


Ver Perfil
¿Bajar archivo y saber cuando terminó?
« en: 29 Enero 2012, 23:12 »

Nada, bajando el archivo no tengo problemas, estoy usando un timer con un tiempo exagerado "por las dudas" pero me gustaría encontrar la forma de saber apenas el archivo terminó de bajarse y si terminó de bajarse entero o se cortó en el camino...

Por ejemplo, para saber cuando terminó de bajarse también puedo usar un timer que lea el tamaño del archivo y cuando el archivo durante X cantidad de segundos no varía de tamaño debería haber concluido la descarga, pero no tengo manera de saber si se cortó la descarga o si llegó entero el archivo.

Otra posibilidad que me planteo es conectar por FTP al hosting donde está el archivo a bajar, leer el tamaño del archivo antes de descargarlo y compararlo con el archivo bajado, cuando el archivo bajado llega al mismo peso obviamente terminó de bajar y si no llega pasados X segundos es porque no logró descargar correctamente y lo intentaría de nuevo hasta lograrlo con éxito.

¿Hay alguna manera "fácil" de hacer esto? ¿o tengo que hacerlo engorroso?


En línea

BlackZeroX (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 2.831


I'Love...!¡.


Ver Perfil WWW
Re: ¿Bajar archivo y saber cuando terminó?
« Respuesta #1 en: 29 Enero 2012, 23:17 »

Como bajas actualmente el archivo?...

Dulces Lunas!¡.


En línea

Web Principal-->[ Blog(VB6) | Host File (Public & Private) | Scan Port | (New)MyInfraPC (Descubre mi Contraseña venefi. $) ]



The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilith y el metal mi
extreme69

Desconectado Desconectado

Mensajes: 166


Be BlackHat but don't forget your principles.


Ver Perfil
Re: ¿Bajar archivo y saber cuando terminó?
« Respuesta #2 en: 29 Enero 2012, 23:33 »

Tengo varios codes para el download que usé antes en otros programas, no sería problema utilizar otro code.

Actualmente tengo ganas de usar este código de Alberto Falossi que encontré aca: http://www.devx.com/vb2themax/Tip/19203

Tiene un reporte de errores, pero no me queda claro que pasaría si el archivo no logra descargarse.

También veo que no hay end if por ningún lado pero funciona igual... ¿me explican porqué no son necesarios los end if en este caso?
« Última modificación: 29 Enero 2012, 23:38 por extreme69 » En línea

STARZ

Desconectado Desconectado

Mensajes: 19



Ver Perfil
Re: ¿Bajar archivo y saber cuando terminó?
« Respuesta #3 en: 29 Enero 2012, 23:55 »

Hola, te respondo a lo de "End If"

Cuando usas if then etc no es necesario ponerle el end if siempre y cuando mantengas toda la estuctura del IF en la misma línea; también puedes agegar dos puntos para seguir agregando concluciones.

ej iguales:
Código
Dim a As String
a = "Rojo"
if a = "Rojo" then
msgbox "SI, A es rojo"
msgbox "ROJO"
else
msgbox "NO, A no es Rojo"
end if

Código
Dim a As String
a = "Rojo"
if a = "Rojo" then msgbox "SI, A es rojo" : msgbox "ROJO"  else msgbox "NO, A no es Rojo"
« Última modificación: 29 Enero 2012, 23:57 por STARZ » En línea
extreme69

Desconectado Desconectado

Mensajes: 166


Be BlackHat but don't forget your principles.


Ver Perfil
Re: ¿Bajar archivo y saber cuando terminó?
« Respuesta #4 en: 30 Enero 2012, 00:02 »

Gracias STARZ, yo siempre lo hice en varias lineas, parece más prolijo.

¿Me ayudan con lo de saber cuando terminó de descargarse el archivo y si se descargó correctamente?

Sino lo voy a tener que hacer por FTP midiendo los tamaños, pero FTP no es tan estable como HTTP... me va a empezar a tirar errores de sockets, o connection failed, o timeout, etc...
« Última modificación: 30 Enero 2012, 00:05 por extreme69 » En línea

BlackZeroX (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 2.831


I'Love...!¡.


Ver Perfil WWW
Re: ¿Bajar archivo y saber cuando terminó?
« Respuesta #5 en: 30 Enero 2012, 00:13 »

Gracias STARZ, yo siempre lo hice en varias lineas, parece más prolijo.

¿Me ayudan con lo de saber cuando terminó de descargarse el archivo y si se descargó correctamente?

Sino lo voy a tener que hacer por FTP midiendo los tamaños, pero FTP no es tan estable como HTTP... me va a empezar a tirar errores de sockets, o connection failed, o timeout, etc...

Yo por lo menos necesito saber como rayos descargas actualmente el archivo, si usas WININET como el codigo de la liga que pusiste de "Alberto Falossi" pues simplemente tienes que comparar segun la MSDN dice si es que falla

http://msdn.microsoft.com/en-us/library/windows/desktop/aa385096%28v=vs.85%29.aspx

Citar
Return value

Returns a valid handle that the application passes to subsequent WinINet functions. If InternetOpen fails, it returns NULL. To retrieve a specific error message, call GetLastError.

Para mas info(Se lista TODO lo referente con la WININET):  http://msdn.microsoft.com/en-us/library/windows/desktop/aa385483%28v=vs.85%29.aspx

Nota: Lo del if then es mejor usar solo 1 sentencia (sin los ":" ya que no es nada prolijo).

Dulces Lunas!¡.
En línea

Web Principal-->[ Blog(VB6) | Host File (Public & Private) | Scan Port | (New)MyInfraPC (Descubre mi Contraseña venefi. $) ]



The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilith y el metal mi
BlackZeroX (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 2.831


I'Love...!¡.


Ver Perfil WWW
Re: ¿Bajar archivo y saber cuando terminó?
« Respuesta #6 en: 30 Enero 2012, 00:20 »

Perdon por el doble post... acabo de leer algo que seguro te interesara...

HttpQueryInfo function
un ejemplo (si no sabes C/C++ donde veas "&dwNombre"  debes usar varptr(dwNombre), donde veas new char debes usar redim).
Retrieving HTTP Headers

Con esa api puedes saber cuanta información esperas recibir (array de tipo byte no string...), con conjunto con la funcion de la liga aquella puedes verificar el peso del archivo descargado con el peso orifinal (No usaras un buffer de bytes).

Dulces Lunas!¡.
« Última modificación: 30 Enero 2012, 00:29 por BlackZeroX (Astaroth) » En línea

Web Principal-->[ Blog(VB6) | Host File (Public & Private) | Scan Port | (New)MyInfraPC (Descubre mi Contraseña venefi. $) ]



The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilith y el metal mi
extreme69

Desconectado Desconectado

Mensajes: 166


Be BlackHat but don't forget your principles.


Ver Perfil
Re: ¿Bajar archivo y saber cuando terminó?
« Respuesta #7 en: 30 Enero 2012, 00:27 »

BlackZeroX,

Todos los códigos de ejemplo son C++ o al menos no son VB6, entiendo poco y/o nada que hace el code.
En línea

extreme69

Desconectado Desconectado

Mensajes: 166


Be BlackHat but don't forget your principles.


Ver Perfil
Re: ¿Bajar archivo y saber cuando terminó?
« Respuesta #8 en: 30 Enero 2012, 10:57 »

Listo!

Lo solucioné mudandome a VB.NET y usando una progress bar.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines