• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    給自己的程序增加網頁瀏覽功能(續)

    發布: 2007-5-25 09:21 | 作者: cutemouse | 來源: 互聯網 | 查看: 34次 | 進入軟件測試論壇討論

    領測軟件測試網

     給自己的程序增加網頁瀏覽功能(續)

     

    Private Sub mnuFileSaveAs_Click()

       

    brwWebBrowser.SetFocus

    On Error Resume Next

    brwWebBrowser.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT

    MILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">另存為   

        以下是用原始的方式另存為

    '    Dim sFile As String

    '

    '

    '    With dlgCommonDialog

    '        .DialogTitle = "另存為..."

    '        .CancelError = False

    '        '.FileName = Me.brwWebBrowser.LocationName

    '        'ToDo: 設置 common dialog 控件的標志和屬性

    '        .Filter = "HTML文件(*.html,*.htm)|*.html;*htm|文本文件(*.txt)|*.txt|Asp文件(*.asp)|*.asp" & _

    '                "|圖形文件(*.bmp;*.jpg;*.jpeg;*.gif)|*.bmp;*.jpg;*.jpeg;*.gif|所有文件(*.*)|*.*"

    '        .ShowSave

    '        If Len(.FileName) = 0 Then

    '            Exit Sub

    '        End If

    '        sFile = .FileName

    '    End With

    '    'ToDo: 添加處理打開的文件的代碼

    '    brwWebBrowser.Navigate sFile

    '

    '    'To Do Save As ...

       

    End Sub

     

    Private Sub mnuFileSetPage_Click()

        brwWebBrowser.SetFocus

        On Error Resume Next

        brwWebBrowser.ExecWB OLECMDID_PAGESETUP, OLECMDEXECOPT_DODEFAULT

    頁面設置

    End Sub

     

    Private Sub mnuFileView_Click()

        brwWebBrowser.SetFocus

        On Error Resume Next

        brwWebBrowser.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT

        打印預覽

    End Sub

     

    Private Sub mnuFileWork_Click()

     

        Me.mnuFileWork.Checked = Not Me.mnuFileWork.Checked

        Me.brwWebBrowser.Offline = Me.mnuFileWork.Checked

        脫機

    End Sub

     

     

     

    一、        WEBBROWSER控件

    WEBBROWSER控件不但可以打開網頁,還可以打開很多其他格式的文件和瀏覽硬盤上的文件。這得益于MSOLE政策。

    當瀏覽一個網頁時,右鍵菜單中的在新窗口打開時,缺省是用IE打開,下面代碼是控制用個人的瀏覽器打開。

    Private Sub brwWebBrowser_NewWindow2(ppDisp As Object, Cancel As Boolean)

        Dim frmWB As frmMainExploer

        Set frmWB = New frmMainExploer

       

        frmWB.brwWebBrowser.RegisterAsBrowser = True

        Set ppDisp = frmWB.brwWebBrowser.Object

       

        frmWB.Visible = True

       

    End Sub

     

    更新窗口標題

    Private Sub brwWebBrowser_TitleChange(ByVal Text As String)

        Me.Caption = Text

    End Sub

     

    在網頁中可能會有關閉窗口的按扭,點擊它會關閉我們的WEBBROWSER控件的實例,以下代碼就是避免情況的發生。

    Private Sub brwWebBrowser_WindowClosing(ByVal IsChildWindow As Boolean, Cancel As Boolean)

        If IsChildWindow = False Then

       

            Cancel = True

        Else

            Cancel = False

       

        End If

    End Sub

     

    無用代碼

    Private Sub mnuHelpTest_Click()

       

        brwWebBrowser.SetFocus

        On Error Resume Next

        brwWebBrowser.ExecWB OLECMDID_NEW, OLECMDEXECOPT_DODEFAULT

       

    End Sub

     

    用了SHELL打開INTERNET選項的控制面板,也可以用SHDOCVW.DLL提供的API打開。

    Private Sub mnuToolOption_Click()

        Dim dblReturn As Double

        dblReturn = Shell("rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,0", 5)

     

    End Sub

     

    全屏顯示,對于WEBBROWSER控件無效。

    Private Sub mnuViewFullScreen_Click()

        Me.brwWebBrowser.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DODEFAULT

    End Sub

     

     

     

     

    二、        INTERNET EXPLORER AUTOMATION

     

    下面代碼顯示怎樣控制一個INTERNET EXPLORER AUTOMATION的實例。

    Dim ie As SHDocVw.InternetExplorer

    '

    '    Set ie = CreateObject("InternetExplorer.Application")       創建一個實例

    '    ie.Navigate2 "C:\"

    '    ie.FullScreen = False       是否全屏

    '    ie.Visible = True

    '    ie.ToolBar = True    是否顯示工具條

    '    ie.MenuBar = True           是否顯示菜單

    '    ie.StatusBar = True              是否顯示狀態條

    '    ie.Resizable = False    是否可變窗口大小。

    'IE6中,增加了個人欄,加上搜索欄、收藏夾和歷史共有四個瀏覽條。以下是控制顯示以下四個瀏覽條的代碼。

    '    IE.ShowBrowserBar "{30D02401-6A81-11D0-8274-00C04FD5AE38}", True

    '

    '    IE.ShowBrowserBar "{EFA24E61-B078-11D0-89E4-00C04FC9E26E}", True

    '

    '    ie.ShowBrowserBar "{EFA24E62-B078-11D0-89E4-00C04FC9E26E}", True

    '

    '    ie.ShowBrowserBar "{EFA24E63-B078-11D0-89E4-00C04FC9E26E}", True

     

     

    三、        MSHTML中的語法解釋

    以下是利用了MSHTML.DLL的語法分析功能, 模仿《程序員大本營2001》中的BORLAND?械牟檎宜墟溄Y的代碼。

    Dim strFilePath As String

     Dim WithEvents MyIE  As SHDocVw.InternetExplorer

     

    Private Sub Command1_Click()

        On Error Resume Next

        Me.dlgOpen.ShowOpen

        strFilePath = dlgOpen.FileName

        Me.brwIE.Navigate2 strFilePath

       

    End Sub

     

    Private Sub Command2_Click()

    'On Error Resume Next

        Dim doc As IHTMLDocument2   ‘IHTML文檔

        Set doc = Me.brwIE.Document

        Dim eles As IHTMLElementCollection              ‘IHTML元素集合

        Dim ele As IHTMLElement

        Dim strLink As String

        Dim ancho As IHTMLAnchorElement             矛點元素

        Dim img As IHTMLImgElement

       

        Dim i As Integer

        i = 0

        List1.Clear

        If doc Is Nothing Then

           

    '        MsgBox "Document is nothing!"

        Else

           

            Set eles = doc.All

            For Each ele In eles

                If ele.tagName = "A" Then

                    strLink = ele.innerText

                    If strLink = "" Then

                       strLink = "Empty!"

                    End If

                    Set ancho = ele

                    strLink = strLink & " -- " & ancho.href

                    List1.AddItem strLink

                End If

            Next

                   

            Text1 = doc.mimeType

        End If

    End Sub

     

    Private Sub Form_Load()

        Set MyIE = CreateObject("InternetExplorer.Application")

        MyIE.Visible = True

    End Sub

     

    四、SHDOCVW.DLLINETCPL中的API

     

    Public Const MAX_PATH = 260

    Public Const CSIDL_FAVORITES = &H6

     

    Public Declare Function LaunchInternetControlPanel Lib "inetcpl.cpl" (ByVal hwndParent As Long) As Long

    Public Declare Function LaunchConnectionDialog Lib "inetcpl.cpl" (ByVal hwndParent As Long) As Long

    Public Declare Function LaunchSecurityDialog Lib "inetcpl.cpl" (ByVal hwndParent As Long) As Long

    Public Declare Function LaunchSiteCertDialog Lib "inetcpl.cpl" (ByVal hwndParent As Long) As Long

    Public Declare Function OpenFontsDialog Lib "inetcpl.cpl" (ByVal hwndParent As Long) As Long

     

    Public Declare Function DoOrganizeFavDlg Lib "shdocvw.dll" (ByVal hwndParent As Long, ByVal lpszPath As String) As Long

    Public Declare Function SHGetSpecialFolderPath Lib "shell32.dll" Alias "SHGetSpecialFolderPathA" (ByVal hwndOwner As Long, ByVal lpszPath As String, ByVal nFolder As Long, ByVal fCreate As Long) As Long

    Public Declare Function DoAddToFavDlg Lib "shdocvw.dll" (ByVal hwndParent As Long, ByVal lpszPath As String) As Long

    Public Declare Function AddUrlToFavorites Lib "shdocvw.dll" (ByVal hwndParent As Long, ByVal lpszPath As String) As Long       這個函數的參數定義有問題。

     

    '

     

    'Private Sub Command1_Click()

    '    Dim rc As Long

    '’顯示INTERNET選項的控制面板

    '    rc = LaunchInternetControlPanel(Me.hWnd)

    '    Debug.Print GetLastError

    '    If rc = 0 Then

    '        MsgBox "LaunchInternetControlPanel failed!", vbExclamation

    '    End If

    'End Sub

    '

    'Private Sub Command2_Click()

    '    Dim rc As Long

    '’IE控制面板中的連接面板

    '    rc = LaunchConnectionDialog(Me.hWnd)

    '    Debug.Print GetLastError

    '    If rc = 0 Then

    '        MsgBox "LaunchConnectionDialog failed!", vbExclamation

    '    End If

    'End Sub

    '

    'Private Sub Command3_Click()

    '    Dim rc As Long

    '    Dim strFavPath As String * MAX_PATH

    '’收藏夾所在的目錄

    '    SHGetSpecialFolderPath Me.hWnd, strFavPath, CSIDL_FAVORITES, False

    整理收藏夾

    '    rc = DoOrganizeFavDlg(Me.hWnd, strFavPath)

    '    Debug.Print GetLastError

    '    If rc = 0 Then

    '        MsgBox "DoOrganizeFavDlg failed!", vbExclamation

    '    End If

    'End Sub

    '

    'Private Sub Command4_Click()

    '    Dim rc As Long

    '

    '    rc = LaunchSiteCertDialog(Me.hWnd)

    '    Debug.Print GetLastError

    '    If rc = 0 Then

    '        MsgBox "LaunchSiteCertDialog failed!", vbExclamation

    '    End If

    'End Sub

    '

    '

    '

    'Private Sub Command6_Click()

    '    Dim rc As Long

    '    Dim strFavPath As String * MAX_PATH

    '

    '    SHGetSpecialFolderPath Me.hWnd, strFavPath, CSIDL_FAVORITES, False

    添加到收藏夾,但這個函數的參數我沒有實驗處理,會出錯。

    '    rc = AddUrlToFavorites(Me.hWnd, Trim(strFavPath))

    '    Debug.Print GetLastError

    '    If rc = 0 Then

    '        MsgBox "DoOrganizeFavDlg failed!", vbExclamation

    '    End If

    '

    'End Sub

    總結

    其實已經有很多文章寫了這方面的內容了,我還是把這些心得寫出來給大家分享。是因為想整理出一個比較全的東西來給大家參考。其實還有很多功能我還無法實現,例如,如何在WEBBROWSERCONTROL中屏蔽或改掉右鍵菜單,因為,WEBBROWSER CONTROL沒有提供HWND給我們用;還不知道怎樣取得WEBBROWSER控件中的網頁代碼,和實現全屏;在WEBBROWSER控件中查找;改變網頁文字的大小,和編碼等等。大家如果有什么新的發現,記得告訴我(mousebox@21cn.com)。

     

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>