【问题标题】:Open Internet Explorer In Excel VBA through direct program path通过直接程序路径在 Excel VBA 中打开 Internet Explorer
【发布时间】:2016-07-20 00:58:09
【问题描述】:

我有一个 Excel 宏,用于打开 Internet Explorer 应用程序并操作该程序。它在相当长的一段时间内完美运行。但是,我的一些用户发现他们需要运行 64 位 Internet Explorer 才能维护他们的一些打印首选项(宏会自动打印我们网站上的页面)。如果 Internet Explorer 程序从链接 C:\Program Files\Internet Explorer\IExplore.exe 启动,则该宏可以工作。

我之前打开ie程序的代码是:

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate ("URL")

我怎样才能使我的对象,即专门通过文件路径 C:\Program Files\Internet Explorer\IExplore.exe 打开 Internet Explorer 并像以前一样将其创建为对象?如果重要的话,我们计算机上安装的 Internet Explorer 是 ie9。

【问题讨论】:

  • 我没有时间对此进行测试,但是 IE 对象应该具有“路径”属性(参见 msdn.microsoft.com/en-us/library/aa752084(v=vs.85).aspx )。也许这可以提供一些线索?
  • 我尝试将其更改为: Set ie = CreateObject("InternetExplorer.Application") ie.Path = "C:\Program Files\Internet Explorer\IExplore.exe" ie.Visible = True 但那也没有用
  • 是的,看起来它是一个只读属性。不过值得一试:)。另一个建议可能是:如果我理解您的问题,您的用户安装了两个版本,并且您的宏默认打开 32 位版本,对吗?这似乎是 Windows 设置。如果您单击另一个程序中的链接,例如在 Outlook 之类的电子邮件中,它可能也会打开 32 位版本,对吗?您应该能够更改网站的默认程序。在 Windows 7 中,它位于控制面板->所有控制面板项->默认程序->设置默认程序
  • 我没有看到 Internet Explorer 64 位作为其中的选项。我只看到 Internet Explorer 的一个选项。它没有指定是 32 位还是 64 位。
  • 单击另一个程序中的超链接时会打开哪个版本?

标签: vba excel internet-explorer macros


【解决方案1】:

所谓的桌面版 IE(不是 Metro 版)运行 64 位 IE 框架,所有 IE 窗口都是 32 位。这是通过 Windows 附带 64 位(在 Program Files 中)和 32 位(在 Program Files (x86) 中)版本的 IE 来实现的。微软不希望人们运行桌面版 IE。他们最出色的推理在 Internet Explorer 经理Q&A: 64-Bit Internet Explorer 的文章中。 64 位版本的 Internet Explorer 9 也不能设置为默认浏览器。

您 Q 中的以下内容可能暗示了另一种攻击方式:However, some of my users have discovered that they need 64 bit internet explorer running in order to maintain some of their printing preferences:为什么会这样?它与安装的打印机驱动程序的位数有关吗?

【讨论】:

  • 有些用户安装了两个版本的 Internet Explorer。一个 32 位版本和一个 64 位版本。其他用户只有一个版本,运行起来就像 64 位版本一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-02
相关资源
最近更新 更多