在使用MS Excel 2010和IE11的64位系统上,我正在使用此代码从网站自动执行下载过程:
hWnd = FindWindowEx(IE.hWnd, 0, "Frame Notification Bar", vbNullString)
If hWnd Then
hWnd = FindWindowEx(hWnd, 0&, "Button", "Save")
End If
If hWnd Then
SetForegroundWindow (hWnd)
Sleep 600
SendMessage hWnd, BM_CLICK, 0, 0
End If
一切正常,直到出现Frame Notification Bar。我正在获取此窗口的HWND,但无法获得“保存”按钮的HWND,因此我可以发送单击它。
答案 0 :(得分:3)
如果有人仍在尝试找到解决方案,那么IE11就在这里。
在上面Vahagn Sargsyan代码的第一行,而不是"Frame Notification Bar"
获取对话框的确切标题,该对话框可能是英文"View Downloads - Internet Explorer"
。这允许你抓住正确的hWnd。
因为在IE11中没有更多按钮加速器来保存文件,请按照here发布的pmr解决方案。
从pmr代码中,只需获取以下行:
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
这应该可以解决您的问题。这为法国本土化打开了局面。
答案 1 :(得分:-1)