我正在使用VBA自动执行网站上的某些操作。而且我的浏览器是IE11。
我知道,如果我想单击框架通知栏上的“保存”选项,则可以使用以下代码块:
Dim o as IUIAutomation
Set o = New CUIAutomation
Dim h as Long
h = ie.hwnd
Dim ie as InternetExplorer
ie = CreateObject("InternetExplorer.Application")
h = FindWindowEx(h, 0, "Frame Notification Bar", vbNullString)
Dim e as IUIAutomationElement
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
类似地,如果我想单击“打开”选项,则可以将上面代码中的“保存”替换为“打开”。
M问题是单击“保存”选项后,我还有3个要单击的选项:“打开”,“打开文件夹”,“查看下载”。我也可以通过单击“框架通知栏”右上角的按钮来关闭“框架通知栏”。它在下面可见:
我的问题是:如何使用VBA单击此按钮?
答案 0 :(得分:0)
所以我使用以下代码使它起作用。
像往常一样将以下内容放在模块顶部
<DataGridComboBoxColumn
DisplayMemberPath="Item"
Header="Item"
ItemsSource="{Binding Data.AssetDescriptions, Source={StaticResource proxy}}"
SelectedItemBinding="{Binding AssetDescription}">
</DataGridComboBoxColumn>
将其放在InvokePattern.Invoke之后,我把时间值放在安全的地方,可能没有必要。
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_DESTROY = &H2
Public Const WM_CLOSE = &H10