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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

2、其中url為URL地址,如“http:” 2 該控件有以下重要事件: 1) BeforeNavigate Event: 在每次裝入頁面前調(diào)用,聲明如下: 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參數(shù)為將要裝入的頁面地址。 2) StatusTextChang Event: 每次瀏覽器的

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

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

5、boBox控件Combo1,用來輸入頁面地址。 4) 在Form1中添加Label控件Label1,用來顯示當(dāng)前瀏覽器操作狀態(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 如果是回車,則瀏覽網(wǎng)頁 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將當(dāng)前顯示的頁面的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顯示當(dāng)前頁面裝入情況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 現(xiàn)在,單擊啟動(dòng)你就可以使用自己的瀏覽器了。該程序在Windows 98、Visual Basic 6.0下運(yùn)行通過。FTP程序設(shè)計(jì)在windows中有一個(gè)控件Internet Transfer control可以提供FTP protocol,這里

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

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

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

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

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

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

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

18、內(nèi)容是否為空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 '改變當(dāng)前進(jìn)程狀態(tài)的值Winsock1.Close '關(guān)閉socket以防它已被另一個(gè)進(jìn)程打開Winsock1.LocalPor

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

20、控件的DataArrival事件中的代碼來控制了。每次當(dāng)Winsock收到數(shù)據(jù)時(shí),都會(huì)觸發(fā)DataArrival事件。根據(jù)已收到的數(shù)據(jù)和你所發(fā)出的命令,程序才知道應(yīng)執(zhí)行在該事件中的哪一部分代碼,以真正完成數(shù)據(jù)的接收。 為了讓程序記住你上次發(fā)出的命令,或者說當(dāng)前進(jìn)程的狀態(tài),我們使用了m_State變量。該變量存放你事先定義好的一個(gè)特殊的數(shù)據(jù)類型: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 '要下載的消息數(shù)(也就是郵件數(shù))Static intCurrentMessage As Integer '已下載的消息數(shù)Static strBuffer As String '正在下載的消息的緩沖Winsock1.GetData strData 將

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論