2012-06-21 32 views
3

Outlook的Dynamics插件通過Internet Explorer嵌入式窗口顯示內容。我試圖找到一個方法來獲取該嵌入式窗口的SHDocVw.InternetExplorer COM對象。我們的應用程序是獨立運行的(它不是Outlook或IE加載項),我們完全不控制嵌入式IE窗口的創建。如何獲取嵌入到另一個應用程序中的Internet Explorer實例的COM引用

當我使用:

Dim SWs As SHDocVw.ShellWindows 
Set SWs = New SHDocVw.ShellWindows 

的副邊繞組集合不包含Outlook中的嵌入式瀏覽器的參考(雖然我得到定期的瀏覽器窗口的引用)。

使用間諜++,我看到了嵌入Outlook窗口下面的窗口層次:

Window "xxxxxx" WindowsForms10.Window.8.app.0.5c39d4_r64_ad2 
    - "" Shell Embedding 
    - "" Shell DocObject View 
     - "" Internet Explorer_Server 

最後兩個層次結構中的窗口(殼牌DocObject的查看和互聯網Explorer_Server)是完全一樣的嵌入式瀏覽器在運行的Internet Explorer實例中。

似乎必須有某種方式才能獲得COM引用這些嵌入式瀏覽器 - 任何幫助或想法將不勝感激。

回答

3

參見KB 249232。您可以從Internet Explorer_Server窗口使用輔助功能獲得IHTMLDocument2指針。它並不漂亮,如果您的目標進程與完整級別不同,它將不起作用。

根據你在做什麼,你可能會破壞目標應用程序,所以要小心。並注意編組。

+0

你剛剛度過了我的一天 - 那會非常棒。謝謝!我會在週一發佈這個消息併發布成功消息。 –

+0

祝你好運。沒有什麼比這些東西容易得多。 :) –

+0

這種技術完全按照需要工作 - 再次感謝。 –

相關問題