'初始化WinINet,返回HINTERNET handles
Private Declare Function InternetOpen Lib "wininet.dll" _
Alias "InternetOpenA" _
(ByVal lpszCallerName As String, _
ByVal dwAccessType As Long, _
ByVal lpszProxyName As String, _
ByVal lpszProxyBypass As String, _
ByVal dwFlags As Long) As Long
'建立Internet连接,打开FTP、Gopher或者HTTP会话。返回HINTERNET handles
Private Declare Function InternetConnect Lib "wininet.dll" _
Alias "InternetConnectA" _
(ByVal hInternetSession As Long, _
ByVal lpszServerName As String, _
ByVal nProxyPort As Integer, _
ByVal lpszUsername As String, _
ByVal lpszPassword As String, _
ByVal dwService As Long, _
ByVal dwFlags As Long, _
ByVal dwContext As Long) As Long
'从FTP服务器上下载一个文件
Private Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _
(ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _
ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, _
ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, _
ByVal dwContext As Long) As Boolean
'关闭Internet连接
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As IntegerPrivate Sub Command1_Click()
Dim InterOpen As Long, InterConn As Long
Dim FtpGet As Boolean
'初始化api
InterOpen = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, _
vbNullString, vbNullString, 0&)
If InterOpen Then
'建立ftp连接
InterConn = InternetConnect(InterOpen, "ftp://61.132.102.124", 0, _
"", "", 1, &H8000000, 0)
If InterConn Then
FtpGet = FtpGetFile(InterConn, "/books/Exceptional_C++_cn.rar", "D:\1.rar", _
0, 0, 1, 0)
If FtpGet Then
MsgBox "ok"
End If
End If
End If
InternetCloseHandle InterConn
InternetCloseHandle InterOpen
MsgBox "close ok"
End Sub
*******************************
FtpGet 值为什么返回的是0?是不是哪里错了?
Private Declare Function InternetOpen Lib "wininet.dll" _
Alias "InternetOpenA" _
(ByVal lpszCallerName As String, _
ByVal dwAccessType As Long, _
ByVal lpszProxyName As String, _
ByVal lpszProxyBypass As String, _
ByVal dwFlags As Long) As Long
'建立Internet连接,打开FTP、Gopher或者HTTP会话。返回HINTERNET handles
Private Declare Function InternetConnect Lib "wininet.dll" _
Alias "InternetConnectA" _
(ByVal hInternetSession As Long, _
ByVal lpszServerName As String, _
ByVal nProxyPort As Integer, _
ByVal lpszUsername As String, _
ByVal lpszPassword As String, _
ByVal dwService As Long, _
ByVal dwFlags As Long, _
ByVal dwContext As Long) As Long
'从FTP服务器上下载一个文件
Private Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _
(ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _
ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, _
ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, _
ByVal dwContext As Long) As Boolean
'关闭Internet连接
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As IntegerPrivate Sub Command1_Click()
Dim InterOpen As Long, InterConn As Long
Dim FtpGet As Boolean
'初始化api
InterOpen = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, _
vbNullString, vbNullString, 0&)
If InterOpen Then
'建立ftp连接
InterConn = InternetConnect(InterOpen, "ftp://61.132.102.124", 0, _
"", "", 1, &H8000000, 0)
If InterConn Then
FtpGet = FtpGetFile(InterConn, "/books/Exceptional_C++_cn.rar", "D:\1.rar", _
0, 0, 1, 0)
If FtpGet Then
MsgBox "ok"
End If
End If
End If
InternetCloseHandle InterConn
InternetCloseHandle InterOpen
MsgBox "close ok"
End Sub
*******************************
FtpGet 值为什么返回的是0?是不是哪里错了?
"", "", 1, &H8000000, 0)
這裡使用 "ftp://61.132.102.124" 感覺怪怪的 直接使用61.132.102.124