15
AutomationElement child = walker.GetFirstChild(el);

Windows自動化の使用子を左シングルクリックしてシミュレーターを作成するにはどうすればよいですか?

4

3 に答える 3

22

マウスイベントを送信するのではなく、次のようInvokeにして送信できます。InvokePattern

public void InvokeAutomationElement(AutomationElement automationElement)
{
    var invokePattern = automationElement.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;
    invokePattern.Invoke();
}
于 2012-11-10T20:42:24.787 に答える
10

試してみてください:

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

リンク:
AutomationElement.GetClickablePoint メソッド
マウスを実際に使用せずに WPF コントロールで Enter/Move/Leave をシミュレートする

コメント用に編集

このリンクを参照してください:

Mouse.cs
NativeMethods.cs
TestApi の概要 – パート 1: 入力インジェクション API

于 2012-04-11T13:02:16.633 に答える
2

コントロールに「ClickablePoint」がある場合、このコードを使用できます

            System.Windows.Point p = theButton.GetClickablePoint();
            AutoItX3Lib.AutoItX3Class au3;
            au3 = new AutoItX3Lib.AutoItX3Class();
            au3.AutoItSetOption("MouseCoordMode", 0);
            au3.MouseClick("LEFT", (int)p.X, (int)p.Y, 1, -1);

ここで、AutoItX3Libは AutoIt の C# API です

于 2013-07-10T08:19:12.253 に答える