用VB創(chuàng)建FTP組件(get)

字號(hào):

基本步驟:
    1、用一個(gè)InternetOpen調(diào)用設(shè)置環(huán)境。
    2、調(diào)用InternetConnect 函數(shù)與主機(jī)連接。
    3、調(diào)用FtpGetFile 達(dá)到文件。
    4、關(guān)閉第1、2步創(chuàng)建的句柄,用InternetCloseHandle 函數(shù)。
    現(xiàn)在來(lái)仔細(xì)看看每一步:
    1、通過(guò)調(diào)用InternetOpen 函數(shù)設(shè)置環(huán)境。下面是VB特定調(diào)用這一函數(shù)的聲明:
    Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
    (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _
    ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
    參數(shù)sAgent 用來(lái)指定調(diào)用WinINet 函數(shù)的應(yīng)用程序或?qū)嶓w。為了達(dá)到目的,可以設(shè)置FTP控制。
    參數(shù)lAccessType 指定我們是直接與某一主機(jī)相連還是使用代理服務(wù)器相連。如果傳遞值1,就直接與主機(jī)連接。如果傳遞3,就通過(guò)代理服務(wù)器。如果傳遞0,連接時(shí)就要基于
    HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings下的注冊(cè)表數(shù)值
    ProxyEnable、ProxyServer和 ProxyOverride 。
    我們可以使用參數(shù)sProxyName和 sProxyBypass,而不是注冊(cè)設(shè)置來(lái)提供代理服務(wù)器和不使用代理服務(wù)器的IP地址和名字。列出代理的基本格式是rotocol=protocol://proxy_name:access_port?。例如,要指定Proxy1 上的端口21為代理服務(wù)器,用Ftp=ftp://Proxy1:21?作為sProxyName。要饒過(guò)以ov? 開(kāi)始的任何主機(jī),sProxyBypass 字符串應(yīng)為ov*? 。
    最后,lFlags 用來(lái)顯示影響函數(shù)結(jié)果的不同選擇。在我們的例子中,我們傳遞0。
    所以,不使用代理而打開(kāi)一個(gè)Internet session 時(shí),我們的調(diào)用是這樣的:
    lngINet = InternetOpen(“FTP Control”, 1, vbNullString, vbNullString, 0)
    如果函數(shù)調(diào)用失敗,lngINet 為0。不然,lngINet 就保存在下一步中將要傳遞給InternetConnect函數(shù)的句柄的值。