给定一个自动化元素我如何模拟它的单击左键

Sta*_*ker 13 c# automation

AutomationElement child = walker.GetFirstChild(el);
Run Code Online (Sandbox Code Playgroud)

使用Windows自动化如何模拟左键单击Child?

Lev*_*evi 19

而不是发送鼠标事件,你可以Invoke通过InvokePattern类似的方式:

public void InvokeAutomationElement(AutomationElement automationElement)
{
    var invokePattern = automationElement.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;
    invokePattern.Invoke();
}
Run Code Online (Sandbox Code Playgroud)

  • 并非所有窗口都支持Invoke模式 (3认同)

and*_*lzo 10

尝试:

AutomationElement child = walker.GetFirstChild(el);
System.Windows.Point p = child.GetClickablePoint();
Mouse.Move((int)p.X, (int)p.Y);
Mouse.Click(MouseButton.Left);
Run Code Online (Sandbox Code Playgroud)

链接:
AutomationElement.GetClickablePoint方法
模拟鼠标在没有真正使用鼠标的情况下进入/移动/保留WPF控件

编辑评论

看到这个链接:

Mouse.cs
NativeMethods.cs TestApi
简介 - 第1部分:输入注入API