在使用MS Excel2010和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,以便我可以向其发送单击。
发布于 2018-04-06 23:07:32
如果有人还在努力寻找解决方案,那就是IE11。
在上面Vahagn Sargsyan代码的第一行,而不是"Frame Notification Bar",获取对话框的确切标题,可能是英文"View Downloads - Internet Explorer"。这允许您获取正确的hWnd。
因为在IE11中没有更多的按钮加速器来保存文件,所以遵循pmr发布的here解决方案。
从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这应该可以解决您的问题。这为我打开了法语本地化的局面。
发布于 2016-03-31 10:02:47
我假设你说的是IE底部弹出的那个小框架,它给了你打开、保存或取消的选项。如果是这样的话,你可能想看看here上类似问题的另一个答案。
次要解决方案将是一个更复杂的解决方案(here),但仍然有效。你必须从这个论坛提供的工作簿中导入模块(虽然你需要注册成为会员,但这是免费的,所以就这么做吧)。这基本上会做你需要的事情,尽管以一种允许你更灵活的方式(选择文件路径,文件名等),也有一点复杂。
不管怎样,希望我能帮上忙。
https://stackoverflow.com/questions/31489801
复制相似问题