Newsgroup: it.comp.lang.visual-basic
Titolo: OCX per collegamento a Internet e download (un po' semplice)

Ciao a tutti,
ho un problema con il WinSock control che non ci capisco + niente. Avrei
solamente la necessità di avere un controllo OCX che permetta il
collegamento a Internet ed il download di alcuni file. Con il Winsock mi è
venuto un puttanaio... alle volte si collega, ma non ritrova i dati dei
file, delle cartelle...
Qualcuno sa dove trovare degli esempi del winsock o, ancora meglio, dove
trovare un semplicissimo OCX che permette di fare queste 2 operazioni
(collegamento e download) in modo semplice?
Grazie 1000
ciao


ho sentito parlare bene di SocketWrench, sostituto freeware del controllo
WinSock; lo puoi trovare su 
http://www.catalyst.com
Ciao
Faber

 collegamento a Internet ed il download di alcuni file.
Per il download di alcuni file puoi usare l'INET
Ciao
--
Timothy Redaelli
timothy....@email.it

 file, delle cartelle...
cosa intendi per "collegamento ad internet"? il dialup?
in tal caso prova a dare un occhiata sul sito comune (mi pare....) ci
dovrebbe essere un bel OCX che fa al caso tuo (l'autore era Moreno... forse?
boh?);
per il download puoi anche provare a utilizzare il controllo Wininet, fai
così:
1) nuovo progetto EXE standard
2) includi il riferimento al controllo Microsoft Internet Transfer Control
(MSINET.OCX)
3) crea una form con una textbox Text1, un command button Command1
(Caption="Get"), un command button Command2 (Caption="Cancel"), una label
Label1, il controllo inet Inet1
4) aggiungi il seguente codice
Option Explicit
Private m_flgCancel As Boolean
Private Sub Command1_Click()
    m_flgCancel = False
    Command1.Enabled = False
    Command2.Enabled = True
    With Inet1
        .AccessType = icDirect
        .Execute Text1.Text
    End With
End Sub
Private Sub Command2_Click()
    Command1.Enabled = True
    Command2.Enabled = False
    Inet1.Cancel
    m_flgCancel = True
End Sub
Private Sub Form_Load()
    Command1.Enabled = True
    Command2.Enabled = False
End Sub
Private Sub Inet1_StateChanged(ByVal State As Integer)
    Dim bufChunk() As Byte
    Dim nLen As Long, nTot As Long
    Dim strFile As String
    Dim strMagic As String
    Select Case State
        Case icNone
            Label1.Caption = "Ready."
        Case icResolvingHost
            Label1.Caption = "Resolving host..."
        Case icHostResolved
            Label1.Caption = "Host resolved."
        Case icConnecting
            Label1.Caption = "Connecting..."
        Case icConnected
            Label1.Caption = "Connected."
        Case icRequesting, icRequestSent
            Label1.Caption = "Requesting..."
        Case icReceivingResponse
            Label1.Caption = "Receiving response..."
        Case icResponseReceived
            Label1.Caption = "Response received."
        Case icDisconnecting
            Label1.Caption = "Disconnecting..."
        Case icDisconnected
            Label1.Caption = "Disconnected."
        Case icError
            Label1.Caption = "Error."
            Command1.Enabled = True
            Command2.Enabled = False
        Case icResponseCompleted
            nTot = 0
            strFile = "C:\Destination Folder\" & GetFileName(Inet1.URL)
            Open strFile For Binary As #1
            Do
                bufChunk = Inet1.GetChunk(8192, icByteArray)
                Put #1, , bufChunk
                nLen = 1 + UBound(bufChunk) - LBound(bufChunk)
                If nLen = 0 Then Exit Do
                nTot = nTot + nLen
                With Label1
                    .Caption = "Getting data " & nTot & " bytes."
                    .Refresh
                End With
            Loop
            strMagic = Space(14)
            Get #1, 1, strMagic
            Close #1
            Label1.Caption = "Data received."
            Command1.Enabled = True
            Command2.Enabled = False
    End Select
End Sub
Private Function GetFileName(strUrl As String) As String
    Dim i As Integer, j As Integer
    Dim strFile As String
    i = 0
    Do
        j = InStr(i + 1, strUrl, "/")
        If j = 0 Then Exit Do
        i = j
    Loop
    strFile = Mid(strUrl, i + 1)
    GetFileName = strFile
End Function
p.s.: ho ritagliato il codice "on the fly" da una mia applicazione...
dovrebbe funzionare senza problemi, ma è cmq meglio se ci dai un occhio;
ciao