单击没有SendKeys或MouseEvent - VBA的IE窗口

时间:2016-06-06 18:19:14

标签: vba internet-explorer automation

我必须点击附带的下载窗口中的保存。 我想使用VBA但不使用sendkeys或mouseevent。 我希望有一些熟悉的东西:VBA Internet Explorer Automation - How to Select "Open" When Downloading a File

请参阅随附的窗口,其中包含按钮和这些窗口中的属性(使用AutoIT)和下面的简历:

下载窗口:Download Window AutoIT窗口属性:AutoIT Window Properties 1

窗口
标题:Windows Internet Explorer
分类:#32770
职位:1672,227
尺寸:391,287
风格:0x96C80284
ExStyle:0x00010101
句柄:0x005002D6

控制
类别:按钮
实例:1
ClassnameNN:Button1
姓名:
高级(班级):[CLASS:Button; INSTANCE:1]
ID:
文字:&打开
位置:10,114
尺寸:365,40 ControlClick Coords:302,30 风格:0x5000200F
ExStyle:0x00000000
句柄:0x0048073C

可见文字
&安培;打开
&安培;保存
保存并作为
取消

1 个答案:

答案 0 :(得分:0)

与以下代码完美配合:

Sub Download()
Dim o As IUIAutomation
Dim e As IUIAutomationElement
Set o = New CUIAutomation
h = ie.hwnd
h = FindWindow("#32770", vbNullString)
If h = 0 Then Exit Sub

Set e = o.ElementFromHandle(ByVal h)
Dim iCnd As IUIAutomationCondition
Set iCnd = o.CreatePropertyCondition(UIA_NamePropertyId, "Save")

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