• <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接口。你大概疑惑于為社么開發者不實現擴展屬性和方法。記住:COM規則是一旦接口發表就不可改變。所以你不能夠不能增加功能而不創建新的接口。

            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

            統計

            常用鏈接

            留言簿

            隨筆分類

            文章分類

            文章檔案

            搜索

            最新評論

            精品久久久久香蕉网| 久久99精品久久久久久动态图| 日本欧美国产精品第一页久久| 亚洲国产精品成人久久蜜臀 | 久久99国产乱子伦精品免费| 久久免费小视频| 影音先锋女人AV鲁色资源网久久| 亚洲综合精品香蕉久久网97 | 久久精品国产清自在天天线| 久久青青草原精品影院| 亚洲欧美日韩中文久久| 伊人久久久AV老熟妇色| 久久精品国产亚洲7777| 欧美日韩中文字幕久久伊人| 欧美亚洲色综久久精品国产 | 久久综合九色综合97_久久久| 午夜人妻久久久久久久久| 99热成人精品免费久久| 国内精品伊人久久久久影院对白 | 性高湖久久久久久久久| 久久一日本道色综合久久| 性欧美丰满熟妇XXXX性久久久 | 久久亚洲天堂| 伊人久久大香线蕉AV色婷婷色| 热久久视久久精品18| 久久精品国产亚洲av日韩| 99久久99这里只有免费的精品| 久久免费大片| 久久综合综合久久综合| 久久精品国产亚洲一区二区三区| 午夜肉伦伦影院久久精品免费看国产一区二区三区| MM131亚洲国产美女久久| 久久av免费天堂小草播放| 精品久久久久久中文字幕大豆网| 久久综合中文字幕| 婷婷久久五月天| 一日本道伊人久久综合影| 人妻少妇久久中文字幕 | 狠狠色综合久久久久尤物| 九九久久99综合一区二区| 久久这里只有精品18|