Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problemas Inet Descargas Simultaneas

Estas en el tema de Problemas Inet Descargas Simultaneas en el foro de Visual Basic clásico en Foros del Web. Tengo el siguiente problema, tengo un programa principal que tiene una lista de archivos, entonces con un click en cada uno comienzo la descarga normalmente, ...
  #1 (permalink)  
Antiguo 30/10/2008, 18:39
 
Fecha de Ingreso: octubre-2008
Mensajes: 8
Antigüedad: 15 años, 6 meses
Puntos: 0
Problemas Inet Descargas Simultaneas

Tengo el siguiente problema, tengo un programa principal que tiene una lista de archivos, entonces con un click en cada uno comienzo la descarga normalmente, el problema es cuando quiero hacer lo mismo con dos archivos al mismo tiempo, es decir abrir 1 ventana para cada archivo Dim f as new Form de esta manera abro cada ventana, cuando abro la segunda ventana me sale el error "el archivo ya esta abierto" y no es el mismo archivo ni sucede esto que indica el mensaje, acontinuacion el codigo del programa q se encarga de bajar:


Option Explicit


' ---------- FORMULARIO
Public Sub DisableXbutton(ByVal frmHwnd As Long)
Dim hMenu As Long
hMenu = GetSystemMenu(frmHwnd, 0&)
If hMenu Then
Call DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
DrawMenuBar (frmHwnd)
End If
End Sub
Sub Descarga(url As String)
'Propiedades para el control inet ( AccessType y URL )
With Inet1
.AccessType = icUseDefault
'Indicamos el url del archivo
.url = Trim(url)
'Indicamos que vamos a descargar o recuperar un archivo desde una url
.Execute , "GET"
End With
End Sub




Private Function Existe(path) As Boolean

If Len(Trim$(Dir$(path))) Then
Existe = True
Else
Existe = False
End If



End Function

Private Sub Inet1_StateChanged(ByVal State As Integer)

On Error GoTo Err_Sub

Dim tempArray() As Byte ' Un array para grabar los datos en un archivo
Dim bDone As Boolean
'Para el tamaño del archivo en bytes que se usa para el array
Dim filesize As Long
' Acá almacenamos los datos
Dim vtData As Variant

Select Case State

Case icResponseCompleted
bDone = False
'Para saber el tamaño del fichero en bytes
filesize = Inet1.GetHeader("Content-length")
'Creamos y abrimos un nuevo archivo en modo binario
Text2.Text = confg.Text1.Text & "\" & mp3.nombre & "." & mp3.tipo
Open Text2.Text For Binary 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

With ProgressBar1
.Value = 0
.Max = filesize
End With

Do While Not bDone
'Almacenamos en un array el contenido del archivo que se va leyendo
tempArray = vtData
'Escribimos los datos en el archivo
Put #1, , tempArray
'Leemos datos de a 1 kb (1024 bytes)
vtData = Inet1.GetChunk(1024, icByteArray)

DoEvents
'Aumentamos la barra de progreso
ProgressBar1.Value = ProgressBar1.Value + (Len(vtData) * 2)

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

Close #1

MsgBox "Archivo Descargado Correctamente", vbInformation
ProgressBar1.Value = 0
Unload Me

End Select

Exit Sub

Err_Sub:
MsgBox Err.Description, vbCritical
On Error Resume Next
Inet1.Cancel
ProgressBar1.Value = 0
End Sub


Private Sub Form_Load()
Call Descarga(mp3.url)
End Sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:22.