Outlook的Dynamics插件通过Internet Explorer嵌入窗口显示内容 . 我正在尝试找到一种方法来获取该嵌入式窗口的SHDocVw.InternetExplorer COM对象 . 我们的应用程序独立运行(它不是Outlook或IE插件),我们根本无法控制嵌入式IE窗口的创建 .
我用的时候:
Dim SWs As SHDocVw.ShellWindows
Set SWs = New SHDocVw.ShellWindows
SWs集合不包含对Outlook中嵌入式浏览器的引用(尽管我确实引用了常规浏览器窗口) .
使用Spy,我看到嵌入式Outlook窗口的以下窗口层次结构:
Window "xxxxxx" WindowsForms10.Window.8.app.0.5c39d4_r64_ad2
- "" Shell Embedding
- "" Shell DocObject View
- "" Internet Explorer_Server
层次结构中的最后两个窗口(Shell DocObject View和Internet Explorer_Server)与正在运行的Internet Explorer实例中的嵌入式查看器完全相同 .
看起来必须有一些方法来获得这些嵌入式浏览器的COM引用 - 任何帮助或想法将不胜感激 .
2 回答
见KB 249232 . 您可以使用辅助功能从
Internet Explorer_Server
窗口获取IHTMLDocument2
指针 . 如果您运行的是与目标进程不同的完整性级别,那么它将起作用't pretty, and it won' .根据您正在做的事情,您可能会使目标应用程序不稳定,所以要小心 . 并注意编组 .
以下是使用Hwnd获取HTMLDocument的方法:
有关更多信息,请参阅此链接:
http://www.xtremevbtalk.com/code-library/295336-internet-explorer-dom-using-objectfromlresult.html