这是我的第一个问题曾经在这里计算器!
我一直在寻找一个解决这个问题的同时,并没有发现任何帮助。 我可能只是用我的搜索错误的关键字,但到目前为止我没有运气。 这里的问题:
在VBA中,我怎么可以从Internet Explorer中的文件下载对话框中的“打开”选项?
只是为了澄清外,我说的是,当一个文件被下载跨越在IE9的屏幕下方弹出的橙黄色条。
我做了一些VBA自动化下载数百个从使用Internet Explorer网页的PDF,但有一个地方文件.fdf已被打开之前,我实际的PDF的中间步骤。 所以,我首先需要选择“打开”选项,这样我就可以移动到自动化的下一个步骤。 就像我刚才所说,我已经做了很多的搜索,并没有运气这么远。
我已经尝试使用SendKeys
在希望按Enter键 ,将工作,这是最后的努力没有奏效。
在此先感谢您的帮助!
我已经广泛这里介绍这一点。
主题 :VBA / VB.Net / VB6,点击打开/保存/取消按钮上的IE下载窗口-第一部分
链接 : http://www.siddharthrout.com/2011/10/23/vbavb-netvb6click-opensavecancel-button-on-ie-download-window/
和
编辑(IMP)如果你使用的是IE 9,不要忘记阅读第2部分,因为它包含和覆盖IE 9下载窗口的窗口结构
主题 :VBA / VB.Net / VB6,点击打开/保存/取消按钮上的IE下载窗口-第二部分
链接 : http://www.siddharthrout.com/2012/02/02/vbavb-netvb6click-opensavecancel-button-on-ie-download-window-part-ii/
上面的链接了解如何使用使用API来实现你想要的讨论。
从第一个链接...
就像你和我,我们都拥有的名称,类似窗口有“手柄”(HWND),类等等。一旦你知道那是什么hWnd为,更容易与窗口交互。
FindWindow函数API使用类名和在这种情况下,窗口(“文件下载”)的标题找到一个特定的窗口的hWnd。 “打开”,“保存”和“取消”按钮本身的窗口,但它们是为“文件下载”主窗口的子窗口。 这意味着那些每个人也会有一个HWND :)找孩子的窗口,我们不使用FindWindow函数,但使用FindWindowEx。 所有这三个按钮“打开”,“保存”和“取消”具有相同的类,这是“按钮”。
类似的帖子: 链接
Option Explicit
Dim ie As InternetExplorer
Dim h As LongPtr
Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPtr
Sub Download()
Dim o As IUIAutomation
Dim e As IUIAutomationElement
Set o = New CUIAutomation
h = ie.Hwnd
h = FindWindowEx(h, 0, "Frame Notification Bar", vbNullString)
If h = 0 Then Exit Sub
Set e = o.ElementFromHandle(ByVal h)
Dim iCnd As IUIAutomationCondition
Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "Open")
Dim Button As IUIAutomationElement
Set Button = e.FindFirst(TreeScope_Subtree, iCnd)
Dim InvokePattern As IUIAutomationInvokePattern
Set InvokePattern = Button.GetCurrentPattern(UIA_InvokePatternId)
InvokePattern.Invoke
End Sub
我把快捷键的应用程序。 在这里,他们是IE11。 抱歉,我不能在IE9测试。 如果你按住Alt键 ,它可能会显示您的其他关键为IE11做组合。
注意:如您所愿,如果IE是不是你机器上的活动窗口,这样就不会同时在调试模式下运行的代码将不会运行。
- 快捷键:Alt + O 键
- VBA:
Application.SendKeys "%{O}"
文章来源: VBA Internet Explorer Automation - How to Select “Open” When Downloading a File