VB利用IE控件設計簡易瀏覽器_第1頁
VB利用IE控件設計簡易瀏覽器_第2頁
VB利用IE控件設計簡易瀏覽器_第3頁
VB利用IE控件設計簡易瀏覽器_第4頁
VB利用IE控件設計簡易瀏覽器_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、利用IE控件設計簡易瀏覽器一、Microsoft Internet Controls控件可以用來制作簡易瀏覽器。 先簡介該控件。1.該控件有以下幾個重要的方法: 1) GoHome :裝入 Internet Explorer設定的起始頁。 用法: object.GoHome以下1)6)用法相同。Object為IE控件名2) GoBack : 返回上一個頁面。 3) GoForward:進入下一個頁面。 4) Refresh:刷新頁面。 5) Stop : 停止載入頁面。 6) GoSearch:搜索頁面。 7) Navigate : 裝入頁面。 用法: object.Navigate url,

2、其中url為URL地址,如“http:” 2 該控件有以下重要事件: 1) BeforeNavigate Event: 在每次裝入頁面前調用,聲明如下: Private Sub object_BeforeNavigate(ByVal URL As String,ByVal Flags As Long, ByVal TargetFrameName As String, PostData As Variant, ByVal Headers As String, Cancel As Boolean 其中URL參數為將要裝入的頁面地址。 2) StatusTextChang Event: 每次瀏覽器的

3、操作狀態(tài)改變時調用,聲明如下: Private Sub WebBrowser1StatusTextChange(ByVal Text As String 其中Text為瀏覽器的操作狀態(tài)。 3) DownloadComplete Event:頁面下載結束后調用,聲明如下: Private Sub WebBrowser1DownloadComplete( 4) NavigateComplete Event:登錄結束后調用,聲明如下: Private Sub WebBrowser1NavigateComplete(ByVal pDisp As Object, URL As Variant 二、用該控

4、件制作瀏覽器的方法 下面介紹如何通過 Internet Explorer控件編程實現對WWW的訪問。 1) 首先加載“Microsoft Internet Control”和“Microsoft Windows Common Controls 6.0(SP3”。然后新建一表單Form1,在Form1中添加Microsoft Internet Control控件顯示頁面 WebBrowser1。 2) 在Form1中添加一個ToolBar控件ToolBar1和一個ImageList控件ImageList1,以實現對瀏覽器的操作。 在ToolBar中增加六個按鈕。3) 在Form1中添加一個Com

5、boBox控件Combo1,用來輸入頁面地址。 4) 在Form1中添加Label控件Label1,用來顯示當前瀏覽器操作狀態(tài)。 5) 在Form1中添加Label控件Label2,其Caption屬性為“地址:”放在ComboBox 控件之前。 程序基本代碼如下:Private Sub FormLoad( On Error Resume Next Me.Show ToolBar1.Refresh FormResize WebBrowser1.GoHome End Sub Private Sub ComBo1Click( WebBrowser1.Navigate ComBo1.Text End

6、 Sub Private Sub Combo1KeyPress(KeyAscii As Integer瀏覽輸入的頁面 On Error Resume Next If KeyAscii = 13 Then 如果是回車,則瀏覽網頁 ComBo1Click End If End Sub Private Sub WebBrowser1BeforeNavigate(ByVal URL As String, ByVal FlagsAs Long,ByVal TargetFrameName As String, PostData As Variant, ByVal HeadersAs String, Can

7、cel As Boolean將當前顯示的頁面的URL地址顯示在 ComBo1上 On Error Resume Next ComBo1.Text=URL End Sub Private Sub WebBrowser1DownloadComplete( On Error Resume Next Me.Caption=WebBrowser1.LocationName End Sub Private Sub WebBrowser1StatusTextChange(ByVal Text As String On Error Resume Next Label1.Caption = Text Label

8、1顯示當前頁面裝入情況End Sub Private Sub WebBrowser1NavigateComplete(ByVal pDisp As Object, URL As Variant On Error Resume Next Dim i As Integer Dim bFound As Boolean Me.Caption=WebBrowser1.LocationName For i=0 To Combo1.ListCount1 If Combo1.List(i=WebBrowser1.LocationURL Then bFound=True Exit ForEnd If Next

9、i If bFound Then Combo1 .RemoveItem i End If Combo1.AddItem WebBrowser1.LocationURL, 0 Combo1.ListIndex=0 End Sub Private Sub ToolBar1ButtonClick(ByVal Button As Button On Error Resume Next Select Case Button.Key Case Back WebBrowser1.GoBack Case Forward WebBrowser1.GoForward Case Refresh WebBrowser

10、1.Refresh Case Home WebBrowser1.GoHome Case Search WebBrowser1.GoSearch Case Stop timTimer.Enabled=False WebBrowser1.Stop Me.Caption=WebBrowser1.LocationName End Select End Sub 現在,單擊啟動你就可以使用自己的瀏覽器了。該程序在Windows 98、Visual Basic 6.0下運行通過。FTP程序設計在windows中有一個控件Internet Transfer control可以提供FTP protocol,這里

11、我們運用 Internet Transfer control來設計一個可以連接FTP Server的client程序,并將FTP Server上的bbb.txt文件下到本地。Step 1:程序設計新建一個Standard.EXE。在Project下,選擇Property屬性選項,在general選項下將Project Name改為FTP client。屏幕的Form上加入一個Internet Transfer control,取名為Inet1。將Inet1 property的參數設置如下:Accesstype=2-icnamedproxy下面的內容也可以象其它FTP程序一樣,新開一個窗口設置參

12、數。Username="david"password="2333334"protocol=2-icFTPproxy=5:8080我們在此將Username及password設置好,當我們Login進入FTP Server時,Server將會直接跳過輸入Username和password的屏幕。加入一個TextBox control,取名為FTPgetfile。加入兩個Button control,取名為FTPget和FTPLink,分別將其Caption改為FTPget和 FTPLink。在FTPLink _Click(中加入以下程

13、序代碼:Private Sub FTPLink _Click(Inet1.excute "FTP "End SubExecute是Internet Transfer control提供的一個用來執(zhí)行FTP公用程序的method,我們可以在它的后面加入FTP的命令,這樣我們就可以使用任何熟悉的FTP公用程序來完成工作。假定FTP Server地址是,所以我們在FTP命令后面填入這個地址。接著在FTPget _Click(中加入以下程序代碼:Private Sub FTPLink _Click(Inet1.excute "G

14、ET aaa.txt c:bbb.txt"End Sub這個動作是將FTP Server上的aaa.txt文件傳送到client端。其它FTP命令,如上傳文件put,更改屬性chmod。大家可以參考UNIX相關參考手冊。POP3協議及郵件檢查、接收程序POP3(Post Office Protocol)郵局協議簡介:POP3協議規(guī)定,客戶端Client與服務器Server聯系,依照如下的協議:1) 按TCP/IP協議,以110端口進行聯系。即需要設置三個屬性(第三個屬性是Server IP地址)2) Server收到連接請求后,發(fā)送OK表示建立連接。第3)6)步Server的應答信息

15、與之相同。3) 發(fā)送USER用戶名。這是正常登錄所需的信息:用戶名與密碼4) 發(fā)送PASS密碼。5) 發(fā)送STAT,獲取郵箱信息。6) 發(fā)送RETE郵件序號,收取指定郵件。7) 發(fā)送DELE郵件序號,刪除指定郵件。8) 最后QUIT退出并CLOSE釋放連接。按下表所示設置各控件的屬性??丶愋涂丶Q控件作用TextboxtxtHost用于輸入郵件服務器的名稱或地址TextboxtxtUserName輸入用戶名TextboxtxtPassword輸入密碼TextboxtxtBody顯示郵件內容ListviewlvMessages顯示郵件清單Command ButtoncmdCheckMail用

16、于啟動接收并顯示郵件的子程序Command ButtoncmdExit退出程序將名為txtBody的文本框的Multiline屬性設為True,Scrollbars屬性設為3-Both。選擇ListView控件,打開其屬性對話框,在“列首”標簽頁中插入四個列,文本分別為: "From", "Subject", "Date", "Size",然后將該控件的View屬性設為3-lvwReport。 直觀的界面顯示你是如何使用本程序的。首先輸入郵件服務器的名稱或地址,然后是你的用戶名和密碼。最報按檢查郵件按鈕。接下來,我

17、們就會看到在ListView中顯示的郵件列表了。點選其中的一項,郵件的內容就會顯示在下面的文本框中。從程序的外觀及VB由事件驅動的本質,我們可以猜出我們只需要處理兩個事件:cmdCheckMail_Click和lvMessages_ItemClick.至于cmdExit中的事件我想就不必說了。先別急,讓我們一步步來看看本程序的代碼是怎樣的。首先看看“檢查郵件”按鈕。當你按下這個按鈕后,程序會首先檢查文本框中的內容,然后調用Winsock的Connect方法連上遠程服務器。下面是程序代碼:Private Sub cmdCheckMail_Click('檢查除txtBody之外所有文本框的

18、內容是否為空For Each c In ControlsIf TypeOf c Is TextBox And c.Name <> "txtBody" ThenIf Len(c.Text = 0 ThenMsgBox c.Name & " can't be empty", vbCritical:Exit SubEnd IfEnd IfNextm_State = POP3_Connect '改變當前進程狀態(tài)的值Winsock1.Close '關閉socket以防它已被另一個進程打開Winsock1.LocalPor

19、t = 0'重置 local port的值,Windows Socket會自動尋找一個新值這樣做是為了防止出現"地址正在被使用"的錯誤,這種情況通常出現在Winsock控件已被前一個進程所使用Winsock1.Connect txtHost, 110'POP3服務器通常用端口110來等待連接請求End Sub 除了下面這個語句之外,其它都一目了然。 m_State = POP3_Connect 現在就讓我來解釋一下這個語句。當觸發(fā)了cmdCheckMail_Click事件后,所運行的程序代碼的目的是要連上遠程郵件服務器。下面要進行的操作就轉由在Winsock

20、控件的DataArrival事件中的代碼來控制了。每次當Winsock收到數據時,都會觸發(fā)DataArrival事件。根據已收到的數據和你所發(fā)出的命令,程序才知道應執(zhí)行在該事件中的哪一部分代碼,以真正完成數據的接收。 為了讓程序記住你上次發(fā)出的命令,或者說當前進程的狀態(tài),我們使用了m_State變量。該變量存放你事先定義好的一個特殊的數據類型:POP3States的值。 Private Enum POP3StatesPOP3_ConnectPOP3_USERPOP3_PASSPOP3_STATPOP3_RETRPOP3_DELEPOP3_QUITEnd Enum下面是Winsock的DataA

21、rrival事件中的代碼。該代碼的絕大部分是注釋以向你解釋程序所做的每一步。如果你覺得悶的話就跳過不看就是了。 Private Sub Winsock1_DataArrival(ByVal bytesTotal As LongDim strData As StringStatic intMessages As Integer '要下載的消息數(也就是郵件數)Static intCurrentMessage As Integer '已下載的消息數Static strBuffer As String '正在下載的消息的緩沖Winsock1.GetData strData 將

22、收到的數據存放在strData變量中If Left$(strData, 1 = "+" Or m_State = POP3_RETR Then'如果來自服務器的回應的第一個字符為”+”,'表明服務器已收到你發(fā)出的命令并等待下一個命令'如果服務器返回字符串的第一個字符為”-“,那我們就什么也不做。操作被轉到ELSE后的代碼。'當接收數據時,來自服務器的字符串的第一個字符就可能不是加號或減號,所以要用第二個條件'm_State = POP3_RETR (正在接收消息的狀態(tài)Select Case m_StateCase POP3_Conne

23、ctintMessages = 0 '重置消息數m_State = POP3_USER '改變進程狀態(tài)''向服務器發(fā)出帶參數的USER命令,'參數是信箱名,別忘了在命令的最后加上vbCrLf Winsock1.SendData "USER " & txtUserName & vbCrLf'這是本次事件的結束,下次開始跳過上一部分,而從下面開始執(zhí)行 Case POP3_USER部分Case POP3_USER'如果用戶名檢查通過就進行下一部分 m_State = POP3_PASS '改變進程的狀

24、態(tài)'向服務器發(fā)送PASS命令,以你的密碼為參數Winsock1.SendData "PASS " & txtPassword & vbCrLfCase POP3_PASS'如果服務器通過了你的身份驗證,我們就可以向服務器發(fā)送STAT命令了'作為對STAT的回應,服務器會傳回你郵箱中的消息數及大小m_State = POP3_STAT''現在發(fā)送STAT命令Winsock1.SendData "STAT" & vbCrLfCase POP3_STAT'服務器對STAT的回應看上去象這樣

25、:"+OK 0 0" (郵箱中沒有郵件或 "+OK 3 7564"'(郵箱中有郵件.顯然,我們必須找到來自服務器返回的字符串中的第一個數字intMessages = CInt(Mid$(strData, 5, InStr(5, strData, " " - 5If intMessages > 0 Then '如果郵箱中有郵件m_State = POP3_RETR '改變進程的狀態(tài)intCurrentMessage = intCurrentMessage + 1Winsock1.SendData "

26、;RETR 1" & vbCrLf '向服務器發(fā)送RETR命令,接收第一條消息Else'如果郵箱中沒有郵件就斷開同服務器的連接結束進程m_State = POP3_QUITWinsock1.SendData "QUIT" & vbCrLfMsgBox "你的郵箱中沒有郵件!", vbInformationEnd IfCase POP3_RETR'在接收郵件時執(zhí)行下面執(zhí)行下面的代碼'郵件可能會很大,并觸發(fā)多次DataArrival事件,接收到的數據被存放在 strBuffer變量中strBuffer = strBuffer & strDataIf InStr(1, strBuffer, vbLf & "." & vbCrLf Then '判斷消息的結束。郵件以小數點結尾'郵件下載完畢,刪除由服務器返回的第一行字符串strBuffer=Mid$(strBuffer, InStr(1, strBuffer, vbCrLf+2strBuffer = Left$(strBuffer, Len(strBuffer - 3 '刪除最后一個只

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論