Difference between revisions of "Talk:Internet Transfer Control in VB6"
From Free Knowledge Base- The DUCK Project: information for everyone
(frmFTP) |
|||
Line 1: | Line 1: | ||
− | + | <nowiki>i ' Here's the code for frmFTP</nowiki> | |
− | + | <nowiki></nowiki> | |
− | + | <nowiki>Option Explicit</nowiki> | |
− | + | <nowiki></nowiki> | |
− | Option Explicit | + | <nowiki>Private msCurrentFile As String</nowiki> |
− | + | <nowiki> </nowiki> | |
− | Private msCurrentFile As String | + | <nowiki>Friend Sub FTPFile(ByVal sFTPServer As String, _</nowiki> |
− | + | <nowiki> ByVal sFTPCommand As String, _</nowiki> | |
− | Friend Sub FTPFile(ByVal sFTPServer As String, _ | + | <nowiki> ByVal sFTPUser As String, _</nowiki> |
− | + | <nowiki> ByVal sFTPPwd As String, _</nowiki> | |
− | + | <nowiki> ByVal sFTPSrcFileName As String, _</nowiki> | |
− | + | <nowiki> ByVal sFTPTgtFileName As String)</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> Dim oFS As Scripting.FileSystemObject</nowiki> | |
− | + | <nowiki> Dim sURL As String</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> On Error GoTo FTPFileExit</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> Me.HRG True</nowiki> | |
− | + | <nowiki> msCurrentFile = ""</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> Set oFS = New Scripting.FileSystemObject</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> sURL = "ftp://" & sFTPServer</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> Inet1.Protocol = icFTP</nowiki> | |
− | + | <nowiki> Inet1.RequestTimeout = 60</nowiki> | |
− | + | <nowiki> Inet1.RemotePort = 21</nowiki> | |
− | + | <nowiki> Inet1.AccessType = icDirect</nowiki> | |
− | + | <nowiki> Inet1.URL = sURL</nowiki> | |
− | + | <nowiki> Inet1.UserName = sFTPUser</nowiki> | |
− | + | <nowiki> Inet1.Password = sFTPPwd</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> Select Case sFTPCommand</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | Select Case sFTPCommand | + | <nowiki> Case "PUT"</nowiki> |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> msCurrentFile = sFTPSrcFileName</nowiki> | |
− | + | <nowiki> If oFS.FileExists(sFTPSrcFileName) = False Then GoTo FTPFileExit</nowiki> | |
− | + | <nowiki> Inet1.Execute sURL, sFTPCommand & Space(1) & sFTPSrcFileName & " " & sFTPTgtFileName</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> Case "GET"</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> msCurrentFile = sFTPTgtFileName</nowiki> | |
− | + | <nowiki> If oFS.FileExists(sFTPTgtFileName) = True Then </nowiki> | |
− | + | <nowiki> oFS.DeleteFile sFTPTgtFileName, True</nowiki> | |
− | + | <nowiki> end if</nowiki> | |
− | + | <nowiki> Inet1.Execute sURL, sFTPCommand & Space(1) & sFTPSrcFileName & " " & sFTPTgtFileName</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> End Select</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> Me.WaitForResponse</nowiki> | |
− | + | <nowiki> Inet1.Execute sURL, "quit"</nowiki> | |
− | + | <nowiki> Me.WaitForResponse</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki>FTPFileExit:</nowiki> | |
− | + | <nowiki> Set oFS = Nothing</nowiki> | |
− | FTPFileExit: | + | <nowiki> HRG False</nowiki> |
− | Set oFS = Nothing | + | <nowiki>End Sub</nowiki> |
− | HRG False | + | <nowiki> </nowiki> |
− | End Sub | + | <nowiki></nowiki> |
− | + | <nowiki>Friend Sub WaitForResponse()</nowiki> | |
− | + | <nowiki></nowiki> | |
− | Friend Sub WaitForResponse() | + | <nowiki> Dim fWait As Boolean</nowiki> |
− | + | <nowiki> </nowiki> | |
− | Dim fWait As Boolean | + | <nowiki> On Error GoTo ErrHandler</nowiki> |
− | + | <nowiki> </nowiki> | |
− | On Error GoTo ErrHandler | + | <nowiki> fWait = True</nowiki> |
− | + | <nowiki> Do Until fWait = False</nowiki> | |
− | fWait = True | + | <nowiki> DoEvents</nowiki> |
− | Do Until fWait = False | + | <nowiki> fWait = Inet1.StillExecuting</nowiki> |
− | + | <nowiki> Loop</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | Loop | + | <nowiki>ErrHandler:</nowiki> |
− | + | <nowiki> Err.Clear</nowiki> | |
− | ErrHandler: | + | <nowiki>End Sub</nowiki> |
− | Err.Clear | + | <nowiki> </nowiki> |
− | End Sub | + | <nowiki>Private Sub Inet1_StateChanged(ByVal State As Integer)</nowiki> |
− | + | <nowiki> </nowiki> | |
− | Private Sub Inet1_StateChanged(ByVal State As Integer) | + | <nowiki> On Error Resume Next</nowiki> |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> Select Case State</nowiki> | |
− | + | <nowiki> Case icNone</nowiki> | |
− | + | <nowiki> Case icResolvingHost: Me.lblRESPONSE.Caption = "Resolving Host"</nowiki> | |
− | + | <nowiki> Case icHostResolved: Me.lblRESPONSE.Caption = "Host Resolved"</nowiki> | |
− | + | <nowiki> Case icConnecting: Me.lblRESPONSE.Caption = "Connecting..."</nowiki> | |
− | + | <nowiki> Case icConnected: Me.lblRESPONSE.Caption = "Connected"</nowiki> | |
− | + | <nowiki> Case icResponseReceived: Me.lblRESPONSE.Caption = "Transferring File..."</nowiki> | |
− | + | <nowiki> Case icDisconnecting: Me.lblRESPONSE.Caption = "Disconnecting..."</nowiki> | |
− | + | <nowiki> Case icDisconnected: Me.lblRESPONSE.Caption = "Disconnected"</nowiki> | |
− | + | <nowiki> Case icError: MsgBox "Error:" & Inet1.ResponseCode & " " & Inet1.ResponseInfo</nowiki> | |
− | + | <nowiki> Case icResponseCompleted: Me.lblRESPONSE.Caption = "Process Complete."</nowiki> | |
− | + | <nowiki> End Select</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> Me.lblRESPONSE.Refresh</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki> Err.Clear</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | Err.Clear | + | <nowiki>End Sub</nowiki> |
− | + | <nowiki></nowiki> | |
− | End Sub | + | <nowiki>Friend Sub HRG(fShowHourGlass As Boolean)</nowiki> |
− | + | <nowiki></nowiki> | |
− | Friend Sub HRG(fShowHourGlass As Boolean) | + | <nowiki> If fShowHourGlass = True Then</nowiki> |
− | + | <nowiki> Screen.MousePointer = 11</nowiki> | |
− | + | <nowiki> Else</nowiki> | |
− | + | <nowiki> Screen.MousePointer = 0</nowiki> | |
− | + | <nowiki> End If</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | + | <nowiki>End Sub</nowiki> | |
− | + | <nowiki> </nowiki> | |
− | End Sub | + | <nowiki>Private Sub Form_Unload(Cancel As Integer)</nowiki> |
− | + | <nowiki> Set frmFTP = Nothing</nowiki> | |
− | Private Sub Form_Unload(Cancel As Integer) | + | <nowiki>End Sub</nowiki> |
− | Set frmFTP = Nothing | + | <nowiki></nowiki> |
− | End Sub | + | <nowiki></nowiki> |
− | + | <nowiki> ' Here's the code for FTPMain.bas</nowiki> | |
− | + | <nowiki> ' Remember to set your project start up to Sub Main()</nowiki> | |
− | + | <nowiki></nowiki> | |
− | + | <nowiki> Public Sub Main()</nowiki> | |
− | + | <nowiki> Load frmFTP</nowiki> | |
− | + | <nowiki> frmFTP.Show</nowiki> | |
− | + | <nowiki> frmFTP.FTPFile "my ip address", "PUT", "myuser", "mypwd", "C:\temp\test.txt", "test.txt"</nowiki> | |
− | + | <nowiki> frmFTP.FTPFile "my ip address", "GET", "myuser", "mypwd", "test.txt", "c:\temp\test2.txt"</nowiki> | |
− | + | <nowiki> Unload frmFTP</nowiki> | |
− | + | <nowiki> End Sub</nowiki> | |
− | + | ||
− | + |
Latest revision as of 07:36, 7 February 2008
i ' Here's the code for frmFTP Option Explicit Private msCurrentFile As String Friend Sub FTPFile(ByVal sFTPServer As String, _ ByVal sFTPCommand As String, _ ByVal sFTPUser As String, _ ByVal sFTPPwd As String, _ ByVal sFTPSrcFileName As String, _ ByVal sFTPTgtFileName As String) Dim oFS As Scripting.FileSystemObject Dim sURL As String On Error GoTo FTPFileExit Me.HRG True msCurrentFile = "" Set oFS = New Scripting.FileSystemObject sURL = "ftp://" & sFTPServer Inet1.Protocol = icFTP Inet1.RequestTimeout = 60 Inet1.RemotePort = 21 Inet1.AccessType = icDirect Inet1.URL = sURL Inet1.UserName = sFTPUser Inet1.Password = sFTPPwd Select Case sFTPCommand Case "PUT" msCurrentFile = sFTPSrcFileName If oFS.FileExists(sFTPSrcFileName) = False Then GoTo FTPFileExit Inet1.Execute sURL, sFTPCommand & Space(1) & sFTPSrcFileName & " " & sFTPTgtFileName Case "GET" msCurrentFile = sFTPTgtFileName If oFS.FileExists(sFTPTgtFileName) = True Then oFS.DeleteFile sFTPTgtFileName, True end if Inet1.Execute sURL, sFTPCommand & Space(1) & sFTPSrcFileName & " " & sFTPTgtFileName End Select Me.WaitForResponse Inet1.Execute sURL, "quit" Me.WaitForResponse FTPFileExit: Set oFS = Nothing HRG False End Sub Friend Sub WaitForResponse() Dim fWait As Boolean On Error GoTo ErrHandler fWait = True Do Until fWait = False DoEvents fWait = Inet1.StillExecuting Loop ErrHandler: Err.Clear End Sub Private Sub Inet1_StateChanged(ByVal State As Integer) On Error Resume Next Select Case State Case icNone Case icResolvingHost: Me.lblRESPONSE.Caption = "Resolving Host" Case icHostResolved: Me.lblRESPONSE.Caption = "Host Resolved" Case icConnecting: Me.lblRESPONSE.Caption = "Connecting..." Case icConnected: Me.lblRESPONSE.Caption = "Connected" Case icResponseReceived: Me.lblRESPONSE.Caption = "Transferring File..." Case icDisconnecting: Me.lblRESPONSE.Caption = "Disconnecting..." Case icDisconnected: Me.lblRESPONSE.Caption = "Disconnected" Case icError: MsgBox "Error:" & Inet1.ResponseCode & " " & Inet1.ResponseInfo Case icResponseCompleted: Me.lblRESPONSE.Caption = "Process Complete." End Select Me.lblRESPONSE.Refresh Err.Clear End Sub Friend Sub HRG(fShowHourGlass As Boolean) If fShowHourGlass = True Then Screen.MousePointer = 11 Else Screen.MousePointer = 0 End If End Sub Private Sub Form_Unload(Cancel As Integer) Set frmFTP = Nothing End Sub ' Here's the code for FTPMain.bas ' Remember to set your project start up to Sub Main() Public Sub Main() Load frmFTP frmFTP.Show frmFTP.FTPFile "my ip address", "PUT", "myuser", "mypwd", "C:\temp\test.txt", "test.txt" frmFTP.FTPFile "my ip address", "GET", "myuser", "mypwd", "test.txt", "c:\temp\test2.txt" Unload frmFTP End Sub