VBA Internet Explorer自动化 - 如何在下载文件时选择"打开"

Lan*_*yer 12 automation vba download internet-explorer-9

这是我在stackoverflow上的第一个问题!

我一直在寻找这个问题的解决方案一段时间,但没有找到任何帮助.我可能只是在我的搜索中使用了错误的关键字,但到目前为止我没有运气.这是问题:

在VBA中,如何从Internet Explorer的文件下载对话框中选择"打开"选项?

只是为了进一步澄清,我说的是在下载文件时,IE9中屏幕底部弹出的黄橙色条.

我正在做一些VBA自动化,使用Internet Explorer从网上下载数百个PDF,但是有一个中间步骤,在我到达实际的PDF之前必须打开.fdf文件.所以我首先需要选择"打开"选项,以便我可以继续进行自动化的下一步.就像我之前说过的那样,我做了很多搜索,到目前为止没有运气.

我已经尝试过使用SendKeys希望打击Enter会起作用,这是最后的努力没有奏效.

在此先感谢您的帮助!

Sid*_*out 4

我在这里已经详细介绍了这一点。

\n

主题: VBA/VB.Net/VB6\xe2\x80\x93在 IE 下载窗口中单击“打开/保存/取消”按钮 \xe2\x80\x93 第 I 部分

\n

链接http ://www.siddharthrout.com/2011/10/23/vbavb-netvb6click-opensavecancel-button-on-ie-download-window/

\n

\n
\n

编辑(IMP)如果您使用的是 IE 9,请不要忘记阅读第 2 部分,因为它包含并涵盖了 IE 9 下载窗口的窗口结构

\n
\n

主题: VBA/VB.Net/VB6\xe2\x80\x93在 IE 下载窗口中单击打开/保存/取消按钮 \xe2\x80\x93 第二部分

\n

链接http://www.siddharthrout.com/2012/02/02/vbavb-netvb6click-opensavecancel-button-on-ie-download-window-part-ii/

\n

上面的链接讨论了如何使用 API 来实现您想要的目的。

\n

从第一个链接...

\n
\n

就像你和我一样,我们都有名字,同样,窗口有 \xe2\x80\x9chandles\xe2\x80\x9d (hWnd)、类等。一旦你知道 hWnd 是什么,与该窗口交互就更容易了。

\n

在本例中,Findwindow API 使用类名和窗口标题 (\xe2\x80\x9cFile Download\xe2\x80\x9d) 查找特定窗口的 hWnd。\xe2\x80\x9cOpen\xe2\x80\x9c、\xe2\x80\x9cSave\xe2\x80\x9d 和 \xe2\x80\x9cCancel\xe2\x80\x9d 按钮本身就是窗口,但它们是主窗口为\xe2\x80\x9cFile Download\xe2\x80\x9c。这意味着其中每个窗口也将有一个 hWnd :) 为了查找子窗口,我们不使用 FindWindow,而是使用 FindWindowEx。所有三个按钮 \xe2\x80\x9cOpen\xe2\x80\x9c、\xe2\x80\x9cSave\xe2\x80\x9d 和 \xe2\x80\x9cCancel\xe2\x80\x9d 具有相同的类,即 \xe2 \x80\x9c 按钮\xe2\x80\x9d。

\n
\n

  • 这些链接现已失效。:-( 最近来自 Wayback 的:https://web.archive.org/web/20160323061203/http://www.siddharthout.com/2011/10/23/vbavb-netvb6click-opensavecancel-button-on-ie- download-window/ 和 https://web.archive.org/web/20160323160504/http://www.siddharthout.com/2012/02/02/vbavb-netvb6click-opensavecancel-button-on-ie-download-window -第二部分/ (3认同)