IE.navigate2在关闭保护模式时失败

Dan*_*der 3 vba internet-explorer-8 excel-2010

我正在从Excel VBA自动化IE8(Excel 2010,Windows 7)

Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate2 URL
Run Code Online (Sandbox Code Playgroud)

如果URL是IE保护模式所在区域中的网站,则一切正常.

如果URL是IE保护模式关闭的区域中的网站,则脚本将失败(IE将自动显示,IE对象在VBA中丢失 - 自动化错误).

有没有办法在保护模式关闭的区域中启用navigate2?

Eri*_*Law 10

您要做的是创建一个以中等完整性运行的IE实例,然后导航它.通常,您可以使用CoCreateInstance(CLSID_InternetExplorerMedium)来实现.目前,没有ProgID指向此CLSID,但是,您可以轻松创建一个:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\InternetExplorer.ApplicationMedium]

[HKEY_CLASSES_ROOT\InternetExplorer.ApplicationMedium\CLSID]
@="{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}"
Run Code Online (Sandbox Code Playgroud)

然后,您可以这样调用此对象:

CreateObject("InternetExplorer.ApplicationMedium")
Run Code Online (Sandbox Code Playgroud)

我在这里解释得更充分:http://blogs.msdn.com/b/ieinternals/archive/2011/08/03/internet-explorer-automation-protected-mode-lcie-default-integrity-level-medium的.aspx


And*_*ers 8

通过CLSID获取InternetExplorer.ApplicationMedium:

Set IE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
Run Code Online (Sandbox Code Playgroud)