首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE11框架通知栏保存按钮

IE11框架通知栏保存按钮
EN

Stack Overflow用户
提问于 2015-07-18 17:36:33
回答 2查看 9.2K关注 0票数 4

在使用MS Excel2010和IE11的64位系统上,我使用以下代码自动从网站下载过程:

代码语言:javascript
复制
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,以便我可以向其发送单击。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-06 23:07:32

如果有人还在努力寻找解决方案,那就是IE11。

在上面Vahagn Sargsyan代码的第一行,而不是"Frame Notification Bar",获取对话框的确切标题,可能是英文"View Downloads - Internet Explorer"。这允许您获取正确的hWnd。

因为在IE11中没有更多的按钮加速器来保存文件,所以遵循pmr发布的here解决方案。

从pmr代码中,只需获取以下行:

代码语言:javascript
复制
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

这应该可以解决您的问题。这为我打开了法语本地化的局面。

票数 3
EN

Stack Overflow用户

发布于 2016-03-31 10:02:47

我假设你说的是IE底部弹出的那个小框架,它给了你打开、保存或取消的选项。如果是这样的话,你可能想看看here上类似问题的另一个答案。

次要解决方案将是一个更复杂的解决方案(here),但仍然有效。你必须从这个论坛提供的工作簿中导入模块(虽然你需要注册成为会员,但这是免费的,所以就这么做吧)。这基本上会做你需要的事情,尽管以一种允许你更灵活的方式(选择文件路径,文件名等),也有一点复杂。

不管怎样,希望我能帮上忙。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31489801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档