在装有 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
一切正常,直到框架通知栏出现。我正在获取此窗口的 HWND,但无法获取“保存”按钮的 HWND,以便我可以向其发送点击。
如果有人仍在尝试寻找 IE11 的解决方案,就在这里。
在代码的第一行瓦哈格·萨尔基相 https://stackoverflow.com/users/5129981/vahagn-sargsyan上面,而不是"Frame Notification Bar"
获取对话框的确切标题,可能是英文"View Downloads - Internet Explorer"
。这允许您获取正确的 hWnd。
因为在 IE11 中没有更多按钮加速器来保存文件,请按照发布的解决方案进行操作here https://stackoverflow.com/a/32152712/7991036 by pmr https://stackoverflow.com/users/1937437/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
这应该可以解决你的问题。这为我打开了法语本地化的局面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)