自從Internet盛行以來,人們對於文件下載、即時資訊取得、電子郵件傳送變得方便許多。 Internet可以說是21世紀人類科技的一大創新。由於這個重大改變,人們的生活方式也受到非常大的影響;電子購物、網路資訊庫、網路股市即時交易如雨後春筍般的出現。過去,VisualBasic4.0並沒有提供一個完整的solution供VisualBasic的愛好者設計Internet程式。還好,VisualBasic5.0提供了一些控件,供我們設計Internet的相關程式。在本文中,筆者將會用InternetTransfercontrol配合WebBrowsercontrol,來告訴讀者如何用VisualBasic5.0輕鬆設計Browser及FTP程式。
Control簡介
InternetTransfercontrol
InternetTransfercontrol是微軟為方便使用者設計Internet應用程式所提供的一種control。它提供兩種InternetPRotocol:HTTP及FTP。我們在使用時,必須先設定好它的存取方式。存取方式分為直接連接到Internet網絡,或透過proxy連接Internet網絡兩種,完全依我們的網絡性質來定。當我們設定了相關參數之後,InternetTransfercontrol提供兩個method:OpenURL及Execute來讓我們執行網路相關操作,我們可以用這兩個指令來執行一些Internetcommand。在下面的設計中,筆者會說明它的用法。
WebBrowsercontrol
WebBrowsercontrol最早是由IE3.0所提供,在安裝IE3.0時就會自動載入;VisualBasic5.0將它變成內部控制項。它提供Navigatemethod,使我們能夠連接到我們想要去的WWWServer。
各位讀者一定很奇怪:既然InternetTransfercontrol能夠透過HTTP及TPprotocol連接到Internet,我們還要WebBrowsercontrol幹甚麼?只因為InternetTransfercontrol並沒有提供圖形模式的存取方式,所得到的檔案只能以文字模式傳回。如果傳回的檔案包含圖形的話,也必須將所得到的HTML檔案用程式來做一個轉換。所以筆者選擇了WebBrowsercontrol來幫我們做一個轉換。
以下就請筆者告訴讀者如何設計WebBrowser及FTPclient。
WebBrowser程式設計
Step1:設定好網路參數
首先要知道我們的網路系統是直接連到Internet,還是透過proxy連接到Internet。我們可以透過以下的步驟來確定我們的系統是以哪種方式連接Internet:
在"我的電腦"選項doubleclick進入"控制面板"。在"控制面板"選項中doubleclick進入"Internet"選項。在InternetDialogBox中選擇connection。由螢幕顯示的DialogBox就可以知道系統是透過proxy還是透過dialing的方式連接到Internet。由於筆者的系統是透過proxy連接到Internet,我們必須找出proxyServer的address及port,以利於程式設定。
接著click"setting"選項來查看它的address及port。螢幕接著會顯示一個DialogBox,裡面記著"addressofproxytouse":172.18.16.65,"port":8080。將它記錄下來,等一下就會用到這些參數。
Step2:開始設計程序
在File選項中選擇NewProject建立一個新的工程,在螢幕上會看到許多選項,如ActiveXDocument.EXE、ActiveXDocument.DLL、ActiveX.EXE、ActiveXControl等,這時要選Standard.EXE。
接著在Project下,選擇Property屬性選項,在general選項下將ProjectName改為Webbrowser。在螢幕的Form上加入一個Webbrowsercontrol,取名為web1;接著加入一個InternetTransfercontrol,取名為Inet1。
加入三個TextBoxcontrol,分別取名為CGISearch、webname和htmlshow,並在CGISearchTextBox前加入一個Label,將其Caption改為Search。
加入三個Buttoncontrol,分別取名為Search、Go和ShowDoc。將Caption分別改為Se
arch、 Goto和showdocument 。
為方便讀者了解關係,以下以表格解釋一遍:
(TextBox)
Name
-------------------------------------------------
CGISearch(輸入CGI指令)
webname(輸入要前往的webaddress)
htmlshow(顯示html文字結果)
(Button)
NameCaption
-------------------------------------------------- -------------------------
-----
Search(執行CGI指令)search
Go(執行前往webaddress的動作)Goto
ShowDoc(顯示html文字結果)showdocument
接著將Inet1的各項屬性設定如下:
accesstype=2-icnamedproxy
protocol=4-icHTTP
proxy=172.18.16.65:8080
在Go_Click()中加入以下程式碼,這個動作是連接到想要去的webServer,並將螢幕顯示在web1的方塊區域內:
PrivateSubGo_Click()
web1.Navigatewebname.Text
EndSub
以上程式是運用web1的Navigate,這個method將畫面連接到webnameTextBox中所指定的網路站點。
在htmlshow_Click()加入以下的程式碼:
PrivateSubhtmlshow_Click()
a$=web1.LocationURL
ShowDoc.Text=Inet1.OpenURL(a$)
EndSub
以上程序,是先將web1所連接到的URLaddress,透過LocationURL這個property讀出,並將它暫存於字串a。接著使用OpenURL()指令將所接收到的HTML程式碼,顯示在ShowDoc這個TextBox中。
在CGIserch_Click()中加入以下程式碼:
PrivateSubCGIserch_Click()
Web1.Navigate"http://search.yahoo.com/bin/Search?p=" CGI.
Text
EndSub
這個動作是用CGI指令來查詢檔案。在這裡我們將查詢指令指定傳送到Yahoo這個網路搜尋站。
這樣我們就完成了一個小型的WebBrowser。
Step3:測試程序
執行剛設計完的WebBrowser,並在webname這個TextBox中填入所要去的網址。這裡我們將它設定為http://www.Microsoft.com。接著按下GoButton,將會看到在web1control的方塊區域內顯示了Microsoft的HomePage。
按下ShowDocButton,將可以在htmlshow這個TextBox中看到MicrosoftHomePage的HTML程式碼。
接下來讓我們試試CGI搜尋功能。在CGIserchTextBox中加入communication,結果我們發覺查詢的結果顯示在web1方形區域。
同樣的,我們也可以按下ShowDocButton,將可以在htmlshow這個TextBox中,看到查詢結果所傳回的HTML程式碼。
恭喜您成功了!
FTP程式設計
前面提到InternetTransfercontrol可以提供FTPprotocol,這裡我們要告訴您如何運用InternetTransfercontrol來設計一個可以連接FTPServer的client程序,並將FTPServer上的bbb.txt檔案download到local端。
Step1:程式設計
在File選項中選擇NewProject建立一個新的工程,在螢幕上看到許多選項,如ActiveXDocument.EXE、ActiveXDocument.DLL、ActiveX.EXE、ActiveXControl等,這時要選Standard.EXE。接著在Project下,選擇Property屬性選項,在general選項下將ProjectName改為FTPclient。
在螢幕的Form上加入一個InternetTransfercontrol,取名為Inet1。將Inet1property的參數設定如下:
Accesstype=2-icnamedproxy
Username="david"
passWord="2333334"
protocol=2-icFTP
proxy=172.18.16.65:8080
我們在此將Username及password設定好,當我們Login進入FTPServer時,Server將會直接跳過輸入Username和password的畫面。
加入一個TextBoxcontrol,取名為FTPgetfile。加入兩個Buttoncontrol,取名為FTPget和FTPLink,分別將其Caption改為FTPget和FTPLink。
在FTPLink_Click()中加入以下程式碼:
PrivateSubFTPLink_Click()
Inet1.excute"FTP128.9.200.4"
EndSub
Execute是InternetTransfercontrol提供的一個用來執行FTP公用程式的method,我們可以在它的後面加入FTP的指令,這樣我們就可以使用任何熟悉的FTP公用程式來完成工作。筆者的FTPServer位址是128.9.200.4,所以我們在FTP指令後面填入這個位址。
接著在FTPget_Click()中加入以下程式碼:
PrivateSubFTPLink_Click()
Inet1.excute"GETaaa.txtc:/bbb.txt"
EndSub
這個動作是將FTPServer上的aaa.txt檔案傳送到client端。
Step2:測試
將FTPclient執行起來,按下FTPLinkButton,連結到FTPServer。按下FTPgetButton,取回檔案。有沒有發覺到在C:/目錄下面多了一個bbb.txt的檔案?恭喜您成功了! ->