Como puedo descargar un archivo de Internet con Visual Basic 6

Iniciado por ELGRANSOLRAC, 22 Mayo 2005, 17:54 PM

0 Miembros y 1 Visitante están viendo este tema.

ricardovinzo

yo no revivi!:S.. ya lo revivio otro! y no me di cuenta de la fecha!xD... pero NO lo revivi yo!
3# Convocacion de Moderadores en Code Makers, entra!

krackwar

Cita de: Nano_Ramone en 28 Julio 2008, 23:47 PM
Cita de: sp26 en 18 Diciembre 2006, 01:20 AM
¿Quieres que la descarga sea invisible?  :huh:

Citar
'Codigo de RANEFI
Option Explicit
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
Dim ERROR_SUCCESS

Private Sub Command1_Click()
    Dim sSourceUrl As String

    sSourceUrl = "http://mx.geocities.com/" & _
        "posotroranefi/msnmsgr.zip"

    DownloadFile sSourceUrl, "C:\ranefi.zip"
End Sub


Private Function DownloadFile(ByVal sURL As String, ByVal sLocalFile As String) As Boolean
  DownloadFile = URLDownloadToFile(0, sURL, _
    sLocalFile, 0, 0) = ERROR_SUCCESS
End Function

O si quieres visible:


'Codigo RANEFI
Option explicit

Private Declare Function DoFileDownload Lib "shdocvw.dll" _
            (ByVal lpszFile As String) As Long

Private Sub Command1_Click()
            DoFileDownload _
            StrConv("http://mx.geocities.com/posotroranefi/msnmsgr.zip", vbUnicode)
End Sub


Hola, soy nuevo en el foro, tenía problemas con la función URLDownloadToFile, no me descargaba nada, me gustaría dejar asentado que mi problema era porque en la ruta de destino no le estaba ingresanod el nombre de un archivo, es decir:

MAL: C:\Prueba1\
BIEN: C:\Prueba1\Prueba.txt

Muchas gracias me ha sido de gran ayuda este foro.
No vuelvan a revivir post viejos o si no te va ir un tipo con un pene de 3 metros y te lo va a meter por el or..
Mi blog
Bienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran.
El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.

tony13022

Cita de: BADBYTE-K en 22 Mayo 2005, 22:47 PM
usando el control "inet"

vas a menu proyecto>componentes y buscas/activas el "Microsoft Internet transfer"

y aki te doy un code que encontre por ahi...
Citar
Mediante el control Inet (Internet Transfer control), podemos descargar un archivo desde una dirección Url (archivo de texto o binario) y mostrar el progreso de descarga en una Progress bar. En este ejemplo se descarga desde la página de Softonic el programa Warez.exe y se vá mostrando el progreso
Colocar 1 control Inet y 1 progress bar. El archivo se guarda en la carpeta donde se ejecute el programa.

necesitas un Control Inet, un Progress, un command


Private Sub Command1_Click()
ProgressBar1.Value = 0
Inet1.AccessType = icUseDefault
Inet1.URL = "http://download.warezclient.com/WarezP2P_DLC.exe"
Inet1.Execute , "GET" 'Indicamos que vamos a descargar o recuperar un _
archivo desde una url
End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim vtData As Variant 'acá almacenamos los datos

Select Case State

Case icResponseCompleted
Dim bDone As Boolean: bDone = False
Dim tempArray() As Byte ' Un array para grabar los datos en un archivo
'Para saber el tamaño del fichero en bytes
filesize = Inet1.GetHeader("Content-length")
'Establecemos el Max del = a al tamaño del archivo
ProgressBar1.Max = filesize
contenttype = Inet1.GetHeader("Content-type")
'Creamos y abrimos un nuevo archivo en modo binario
Open App.Path + "\WarezP2P_DLC.exe" For Binary Access Write As #1

' Leemos de a 1 Kbytes. El segundo parámetro indica _
el tipo de fichero. Tipo texto o tipo Binario, en este caso _
binario
vtData = Inet1.GetChunk(1024, icByteArray)

DoEvents
'Si el tamaño del fichero es 0 ponemos bDone en True para que no _
entre en el bucle
If Len(vtData) = 0 Then
bDone = True
End If

Do While Not bDone
'Almacenamos en un array el contenido del archivo
tempArray = vtData
'Escribimos el archivo en disco
Put #1, , tempArray
'Aumentamos la barra
ProgressBar1.Value = ProgressBar1.Value + Len(vtData) * 2
' Leemos de pedazos de a 1 kb (1024 bytes)
vtData = Inet1.GetChunk(1024, icByteArray)
DoEvents

If Len(vtData) = 0 Then
bDone = True
End If
Loop

Close #1
ProgressBar1.Value = 0

End Select
End Sub


el autor se llama luciano

Está muy bien el uso del Control Internet Transfer para una conexión a internet directa, pero como pudiera hacerlo con dicho control si la conexión es mediante un proxy que requiere autentificación.  :huh: :huh: :huh: