需要在INTERNET EXPLORER浏览器中单击“打开方式”选项,下载文件后,将出现此窗口
使用uiautomationclient dll和UIAComWrapper执行此类任务, 到目前为止,由于图书馆未将“打开方式”显示为浏览器的子代/后代,因此至今尚未实现任何目标。
<img src='https://i.stack.imgur.com/XJMJp.png'/>
试图递归查找所有窗口,但没有一个起作用
如果(targetTreeViewElement == null) 返回;
AutomationElement elementNode = TreeWalker.ControlViewWalker.GetFirstChild(targetTreeViewElement);
while (elementNode != null)
{
// Test for the control patterns of interest for this sample.
object objPattern;
ExpandCollapsePattern expcolPattern;
if (true == elementNode.TrygetcurrentPattern(ExpandCollapsePattern.Pattern,out objPattern))
{
expcolPattern = objPattern as ExpandCollapsePattern;
if (expcolPattern.Current.ExpandCollapseState != ExpandCollapseState.LeafNode)
{
ExpandCollapsePattern expandPattern = ((ExpandCollapsePattern)expcolPattern);
if (expandPattern.Current.ExpandCollapseState != ExpandCollapseState.Expanded)
expandPattern.Expand();
}
}
TogglePattern togPattern;
if (true == elementNode.TrygetcurrentPattern(TogglePattern.Pattern,out objPattern))
{
togPattern = objPattern as TogglePattern;
TogglePattern expandPattern = ((TogglePattern)togPattern);
if (expandPattern.Current.ToggleState != ToggleState.On)
expandPattern.Toggle();
}
InvokePattern invPattern;
if (true == elementNode.TrygetcurrentPattern(InvokePattern.Pattern,out objPattern))
{
if (elementNode.Current.Name == "Open with")
{
invPattern = objPattern as InvokePattern;
InvokePattern expandPattern = ((InvokePattern)invPattern);
expandPattern.Invoke();
}
}
// Iterate to next element.
// elementNode - Current element.
// treeviewIndex - Index of parent TreeView.
FindTreeViewDescendants(elementNode);
elementNode = TreeWalker.ControlViewWalker.GetNextSibling(elementNode);[enter image description here][1]