當前, 有許多構造模塊可以幫助用戶創建名為超客戶端(rich client)的Internet應用其中包括Visual Basic(以下簡稱VB)的ActiveX 控件集合。它們可以提供SMTP和POP郵件服務、FTP、Newsgroup和Web訪問等功能。另外,利用OLE也可以實現Web訪問的自動化。本文向大家介紹這兩種方法。
在應用中嵌入ActiveX控件
利用Crescent的Internet Toolpak(Internet 工具包)符合HTTP 協議的控件,可以將VB應用連接到Web站點,向站點傳送數據,並從站點獲取HTML頁面。Crescent HTTP控件不能實際顯示出下載的HTML頁面 ,但能使應用程序以字符串的形式使用頁面數據。例如,如果服務器產生一個名叫Myresult.html的HTML文件答復來自客戶端的請求,客戶端應用能夠通過與服務器建立的Crescent Active X連接來獲取並下載這個文件。建立連接的代碼段如下:
CIHTTP1.HostName="www.cnblogs.com"
CIHTTP1.URL="resul ts\myresult.html"
CHTTP.ParseIncomingData = True
CIHTTP1.Conn ectToServer
一旦ActiveX控件與服務器建立連接,它就會觸發HTTPServerConnection事件。這時,應用程序發出命令CIHTTP1.GET,檢索RL屬性中指定的頁面,然後該控件激活FileClosed事件取回指定的頁面 。應用程序通過ActveX的屬性HTMLPageText WithTags(主頁不嵌有 HTML代碼時用屬性HTMLPageTextWithOutTgs) 讀頁面文本。代碼如下 :
mytext= CIHTTP1. HTMLPageTextWithTags
如果不想用控件下載 整個主頁,可以通過控件的PacketReceived事件的Packet參數快速掃 描頁面數據。每當控件接受到服務器的數據後都會激活PacketReceived事件。
另外,客戶端應用還可以使用HTTP控件提取來自標准浏覽器的Web頁面數據。例如,ActveX控件在幕後與Web建立連接並下載正在發布的頁面,讓傳統的客戶端應用不斷接收最新Wb信息,更改原有內容。
為進一步簡化處理,在ActiveX控件與Web頁面相連之前需設置好屬性。Crescent的HTT控件還可以把下載頁面的URL地址、圖像文件的地址和所有HTML命令文件分別添加到指定的三個列表框中。
用OLE實現Web訪問的自動化
除了ActiveX控件以外,還有一種方法可以實現應用程序與Web的交互自動化,這就是OL自動化,即利用OLE Automation建立傳統應用, 再通? 覽器的OLE Automation服務器接口進行自動Web連接。Netscape Navigator 和Microsoft Internet Explorer 3.0 以上版本都 支持OLE Automation。
Netscape Navigator的OLE Automation接口是專為這一目的而 設計的。例如,通過OL Automation接口讓Navigator打開一個Web頁面 ,它不會在自身的浏覽器窗口中顯示這個頁面,而是下載該頁面的內容 ,復制到服務器對象的數據緩沖區中,讓客戶端的應用程序去訪問這些內容。
例如,假設需要Navigator在Excel中打開一個Web頁面,首先必須 使用Excel的"引用"對話框引用Navigator程序目錄中的Netscape.TLB 庫,然後把Navigator對象作為一個實例,並完成打開頁面的功能。代碼如下:
Dim Nav as Object, result as Boolean
Dim url as String
Const urlGet =0
Const urlPost=1
url=http://www.cnblogs.com/index.html
set Nav=CreatObject("netscape.netork")
result=Nav.Open(url,urlGet,",",0," ")
如果自動化對象的屬性IsFinished設置為True,就可以通過對象緩沖區仔細處理頁面中的內容.