Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Creare un Download Manager con VB

    Salve, sono nuovo del Forum.

    E' da un po' che mi faccio le applicazioni con VB, ma c'è una cosa che proprio non riesco a fare, magari è semplicissima... eppure...

    Sto cercando di fare un programma che scarica un file da Internet quando si fa click sul Button "Inizia Download".

    Il codice che utilizzo è:

    codice:
    My.Computer.Network.DownloadFile(    "-file da scaricare-",     "-percorso salvataggio-")
    E fin qui tutto bene. Il problema è usare il
    codice:
    ShowUI
    per mostrare una finestra di dialogo durante il Download...

    Cosa devo scrivere per dare il comando ShowUI quando si fa Click sul Button "Inizia Download"?

    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    codice:
     My.Computer.Network.DownloadFile("http://www.miosito.com/pippo.exe", "C:\pippo.exe", Nothing, Nothing, True, 1000, True)
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Grazie, funziona!

    Non c'è però anche un modo per modificare quella finestra?

    (Scusa se ho risposto in ritardo, non ho avuto tempo di connettermi.)


  4. #4
    Questa è la documentazione:

    http://msdn.microsoft.com/en-us/libr...8y(VS.90).aspx

    ma non si può modificare tale finestra..


    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Se invece di utilizzare il metodo My.Computer.Network.DownloadFile ti crei un tuo metodo puoi personalizzare la tua finestra tipo:

    Ti crei una classe
    codice:
    Imports System.IO
    Imports System.Net
    Imports System.Text
    
    Public Class Download
        Public Shared Event Status(ByVal value As Integer, ByVal masValue As Integer)
    
        Public Shared Sub DownloadFile()
            Dim wr As HttpWebRequest = CType(WebRequest.Create("http://www.mioSito.com/mioFile.exe"), HttpWebRequest)
            Dim ws As HttpWebResponse = CType(wr.GetResponse(), HttpWebResponse)
            Dim str As Stream = ws.GetResponseStream()
            Dim inBuf(1024000) As Byte
            Dim bytesToRead As Integer = CInt(inBuf.Length)
            Dim bytesRead As Integer = 0
            While bytesToRead > 0
                Dim n As Integer = str.Read(inBuf, bytesRead, bytesToRead)
                If n = 0 Then
                    Exit While
                End If
                bytesRead += n
                bytesToRead -= n
                System.Threading.Thread.Sleep(2)
                RaiseEvent Status(bytesRead, ws.ContentLength)
            End While
            Dim fstr As New FileStream("C:\mioFile.exe", FileMode.OpenOrCreate, FileAccess.Write)
            fstr.Write(inBuf, 0, bytesRead)
            str.Close()
            fstr.Close()    
        End Sub
    
    End Class
    E poi richiami nella tua finestra personalizzata il metodo shared

    codice:
    Public Class Form1
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            AddHandler Download.Status, AddressOf myDownload_Status
            Download.DownloadFile()
        End Sub
    
        Private Sub myDownload_Status(ByVal value As Integer, ByVal masValue As Integer)
            ProgressBar1.Maximum = masValue
            ProgressBar1.Value = value
        End Sub
    End Class
    Prova dovrebbe fungere.
    Sbagliare è umano, perseverare è diabolico.

  6. #6
    Buona questa soluzione, sicuramente andrà bene (ed è moltoooo più semplice di un'altra via per "modificare" la finestra, cioè le hook)..

  7. #7
    Grazie, pirelli72. E' da due settimane che non ho il PC (rotto... ) ma tra poco dovrebbe tornare a funzionare: proverò il codice e ti farò sapere.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.