• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            yehao's Blog

            如何對webbrowser和IE編程(三)

            http://blog.csdn.net/shanhe/article/details/397373 
            IWebBrowserApp

            IWebBrowserApp 接口僅僅在IE中實現。 典型的,你使用InternetExplorer 對象創建一個IE的實例. 然后你使用 IWebBrowserApp 接口操縱此實例. (今天采用IWebBrowser2 替代)IWebBrowserApp 接口繼承自 IWebBrowser, 所以它提供 IWebBrowser 的全部功能。

            因為IWebBrowserApp呈現一個IE窗口的實例, 所以它的方法和屬性典型地允許你控制瀏覽器窗口的用戶接口。 這些方法和屬性并非包含在WebBrowser的 IWebBrowser 中的:寄宿control的應用程序提供諸如狀態條, 工具條, 以及菜單條等用戶接口. WebBrowser 控件僅僅用于裝載web頁以及其它類型文件。

            IWebBrowserApp 有4個方法和10 各屬性。

            方法 IWebBrowserApp 接口的屬性很直觀立如下表, 但是有2個有理由值的討論:GetProperty 和PutProperty. 此兩個方法允許你在IE屬性包(property bag)中存儲一個屬性一邊你能夠在其后重新找回他們。 你將典型地從一個web頁上存儲一些狀態信息到另一個web頁 (事實上,使用IWebBrowser2 接口你可以在宿主一個WebBrowser 控件時候使用此方法)

            Table 6-3. IWebBrowserApp  vtable 次序的方法

            方法

             

             

            描述

             

             

            Quit

             

             

            促使 Internet Explorer 窗口關閉。換句話講,將自動化操作關閉IE實例

             

             

            ClientToWindow

             

             

            轉換一個點從窗口坐標到客戶坐標。

             

             

            PutProperty

             

             

            存儲一個屬性值到ie的屬性包,將可以隨手采用GetProperty.獲取

             

             

            GetProperty

             

             

            獲取先前由 PutProperty.方法存儲的屬性值

             

             

            VB代碼:

            InternetExplorer1.PutProperty "CurrentPicture", 10
            InternetExplorer1.GetProperty("CurrentPicture")

            VC++代碼:

            CSomeClass::PutGetProperty(VARIANT vtCurrentValue, VARIANT* vtNewValue)
            {
               HRESULT hr;
               hr = m_pInternetExplorer->PutProperty(L"CurrentPicture",
                                           vtCurrentValue);
             

             

               if (SUCCEEDED(hr))
               {
                 // Notice that vtNewValue is already a pointer, so you
                 // don't have to pass the address to GetProperty.
                 //
                 hr = m_pInternetExplorer->GetProperty(L"CurrentPicture", 
                                             vtNewValue);
               }
             

             

               return hr;
            }

            PutGetProperty 方法接受包含當前屬性值的 VARIANT 變量指針且將接收屬性值。

            屬性 IWebBrowserApp 接口有10 個屬性. Table 6-4. IWebBrowserApp vtable 次序的屬性

            屬性

             

             

            描述

             

             

            Name

             

             

            返回對象的名稱t. (舉例,當自動化IE, Name 屬性將返回 Microsoft Internet Explorer.)

             

             

            HWND

             

             

            返回IE窗口的句柄

             

             

            FullName

             

             

            返回ie可執行文件的全路徑 (iexplore.exe).

             

             

            Path

             

             

            返回IE應用程序的全路徑.

             

             

            Visible

             

             

            監測和設置IE窗口是否可見。 (換句話講,你可與使用此屬性顯示/隱藏)

             

             

            StatusBar

             

             

            顯示或者隱藏IE狀態條,也可監測當前狀態條

             

             

            StatusText

             

             

            設置或隱藏狀態條文字

             

             

            ToolBar

             

             

            顯示或者隱藏IE工具條,也可監測當前工具條狀態 

             

             

            MenuBar

             

             

            顯示或者隱藏IE菜單條,也可監測當前工具菜單態 

             

             

            FullScreen

             

             

            設置或者檢測一個值指示IE當前是否最大化顯示。最大化顯示,iE占據整個屏幕

             

             

            Table 6-4 中的屬性列表直截了當且易于使用。舉例來說, 如果你想從你的Vb程序中獲取IE狀態條中的文字,你應當使用如下代碼:

            Dim strStatusText
            strStatusText = InternetExplorer1.StatusText

            使用MFC包裝類的VC++程序代碼如下:

            BSTR bstrStatusText;
            HRESULT hr = m_pInternetExplorer->get_StatusText(&bstrStatusText);

             

             

            IWebBrowser2

            因為COM規則要求接口恒久不變, 要加入新的工呢高COM,你必須增加新的接口。 新的接口可擴展自其他接口已擴展功能。 舉例,當心的需求引入WebBrowser 和Internet Explorer 接口, 開發者被要求建立一個新的接口: IWebBrowser2.

            早期, IWebBrowser2 繼承自 IWebBrowser 和 IWebBrowserApp, 還提供不包含在著兩個接口中的功能. 所以你應當使用 IWebBrowser2 接口替代 來操縱WebBrowser 控件或者 Internet Explorer.

            IWebBrowser2 接口有4個方法和8個屬性.

            方法   IWebBrowser2 接口方法如下描述,按照 vtable 次序, in Table 6-5.

            也許IWebBrowser2 、接口踵使用最多的方法是ExecWB. 它通過WebBrowser實現了一個 IOleCommandTarget 接口的Exec的包裝實現。 在 ExecWB 方法 被創建前, 你不可以直接從VB中調用IOleCommandTarget::Exec, 因為VB不可訪問 IOleCommandTarget 接口 ,因而VB不可直接使用該接口的ExecWB方法。 IOleCommandTarget::Exec 方法過去大量使用,所以 WebBrowser 開發者決定創建ExecWB 以使事情變得容易。

             

            Table 6-5. IWebBrowser2  Vtable 次序的方法

            方法

             

             

            描述

             

             

            Navigate2

             

             

            功能基于Navigate 方法,不同在于 Navigate2 允許你導航到飛URL表達的地方,例如Windows shell folder. (Windows shell folder 是指向標示符指針或者windows shell命名空間中的 PIDL,)

             

             

            QueryStatusWB

             

             

            IoleCommandTarget接口的QueryStatus方法在 WebBrowser.中的包裝實現

             

             

            ExecWB

             

             

            IoleCommandTarget接口的Exec方法在 WebBrowser.中的包裝實現

             

             

            ShowBrowserBar

             

             

            顯示或者隱藏特定的瀏覽器條該方法僅僅用于InternetExplorer 對象

             

             

             

            為什么你無論如何都要調用ExecWB方法?因為它提供了你需要的功能(通過IOleCommandTarget::Exec)不是暴露于webbrowser接口。你大概疑惑于為社么開發者不實現擴展屬性和方法。記?。篊OM規則是一旦接口發表就不可改變。所以你不能夠不能增加功能而不創建新的接口。

            ExecWB 方法允許WebBrowser 開發者增加新的功能而不用創建新的接口。再之, 那是由WebBrowser 通過 ExecWB 代表性的暴露不常用的工的途徑, 譬如調用 Save As 對話框或者縮放web頁的字體。  ExecWB 工作的方法是傳遞一個你想調用的command ID 和必需的參數. 太多的 command IDs ,他們包含于OLECMDID 實現文檔頭文件he DocObj.h .

             

             

            作為舉例, 支持縮放web頁的內容字體。Internet Explorer 允許你通過View菜單的Text Size子菜單改變字體的大小從最小到最大。 ExecWB 方法暴露了允許你改變顯示在瀏覽器中的文字大小。對于Zoom 命令, 你可指定特殊值0123, or 4,  是最小字體 ,4是最大字體。以下舉例為改變字體為最大(VB):

            WebBrowser1.ExecWB OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, _
                               CLng(4), Null

            再次代碼中, 我調用 ExecWB 方法, 傳遞OLECMDID_ZOOM 常量給第一個參數. 此常量指定 zoom 操作將被執行。 第二個參數傳遞給ExecWB 不要提示用戶。另外的選擇, 你可以提醒用戶而是用OLECMDEXECOPT_PROMPTUSER. (見 DocObj.h.)

            第三個輸入參數指示要設定的文字尺寸。我想是文字盡可能的大,所以我指定了4 。注意我在調用中使用了VB的Clng函數包裝此值,轉換我指定的此值為一個variant—輸入需要的類型.最后為一個輸出參數包含任何返回值。因為返回值不需要關心,我傳遞Null.

             

             

            屬性 IWebBrowser2 接口有8個屬性。 (Table 6-6 按照vtable次序展示其)。他們都很直觀,我僅僅解釋恰宏很特別的一個—AddressBar.

            Table 6-6. IWebBrowser2 Properties in Vtable Order

            屬性

             

             

            描述

             

             

            ReadyState

             

             

            返回WebBrowser 的狀態(換句話講 ,該屬性指示文檔是否完成裝載).盡管你可以使用 ReadyState 屬性使用 DocumentComplete 時間檢測文檔是否裝載還是比較好些。 (那意味著所有HTML和文檔被裝載

             

             

            Offline

             

             

            .返回或者設置檢測webbrowser是否處于脫機模式的變量

             

             

            Silent

             

             

            返回或設置 WebBrowser 是否處于沉默模式。如果處于沉默模式,意味著沒有對話框可以被顯示.

             

             

            RegisterAsBrowser

             

             

            .設置或者檢測Webbrowser是否是作為頂層瀏覽器被登記

             

             

            RegisterAsDropTarget

             

             

            .設置或返回WebBrowser是否作為導航的拖放對象 。如果登記委托放對象,用戶可直接拖放連接到瀏覽器  

             

             

            TheaterMode

             

             

            返回或者設置Internet Explorer是否處于theater 或者 normal window 模式.。在theater 模式, Internet Explorer占據整個屏幕就像處于FullScreen 模式,但也有最小化的用戶接口元素 (此屬性僅僅展示于InternetExplorer對象)

             

             

            AddressBar

             

             

            顯示或者隱藏地址欄(此屬性僅僅展示于InternetExplorer 對象)

             

             

            Resizable

             

             

            返回或者設置Internet Explorer是否可被調整大小你可利用此屬性防止用戶改變webbrowser的大小(此屬性僅僅展示于InternetExplorer 對象)

             

             

             

             

            AddressBar 屬性允許你顯示/隱藏Internet Explorer 地址欄—一個包含可輸入URL的文本框 允許你導航到某個Url。 能夠顯示或者隱藏地址條允許你完全控制你的用戶的導航體驗

            在你的企業網絡或者中小學控制用戶導航體驗.在此環境下,你將控制用戶的導航以至于可確定某些不恰當地頁面不可訪問。你可創建你自己的瀏覽器。但是如果你沒有時間和資源這么做,你可以自動化IE來代替.自動化IE允許你管掉所有的用戶界面允許用戶導航到某個web頁,像菜單條, 工具條,以地址欄. 之后你可建立一定數量的可訪問web頁連接列表給用戶。

             

            關掉這些用戶接口很容易. VB代碼:

            InternetExplorer1.AddressBar = False
            InternetExplorer1.ToolBar = False
            InternetExplorer1.MenuBar = False

            posted on 2012-09-22 21:32 厚積薄發 閱讀(518) 評論(0)  編輯 收藏 引用 所屬分類: Windows編程

            導航

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            統計

            常用鏈接

            留言簿

            隨筆分類

            文章分類

            文章檔案

            搜索

            最新評論

            少妇熟女久久综合网色欲| 久久国产高清字幕中文| 狠狠色丁香婷婷综合久久来来去| www性久久久com| 成人国内精品久久久久影院VR| 国产高潮国产高潮久久久91 | 久久精品国产黑森林| 久久精品亚洲福利| 狠狠色婷婷久久一区二区| AAA级久久久精品无码片| 国产精品免费看久久久香蕉| 久久久久久久91精品免费观看| 久久精品水蜜桃av综合天堂 | 久久久久国产精品嫩草影院| 久久男人Av资源网站无码软件| 国产成人精品久久亚洲高清不卡| 久久久久精品国产亚洲AV无码| 欧美亚洲国产精品久久蜜芽| 色狠狠久久综合网| 久久99精品九九九久久婷婷| 久久夜色精品国产欧美乱| 久久青青草原精品国产软件| 精品精品国产自在久久高清| 狠狠色婷婷久久综合频道日韩| 精品综合久久久久久88小说| 久久99国产精品一区二区| 亚洲中文字幕无码久久2020| 国产午夜电影久久| 99久久国产综合精品五月天喷水| 久久无码高潮喷水| 欧美久久亚洲精品| 国内精品久久久久久久影视麻豆 | 99久久精品影院老鸭窝| 一本一本久久a久久综合精品蜜桃 一本一道久久综合狠狠老 | 久久精品国产亚洲77777| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 久久久久久久综合综合狠狠| 久久九九全国免费| 曰曰摸天天摸人人看久久久| 国产精品一久久香蕉国产线看 | 久久久亚洲欧洲日产国码aⅴ|