ms ui 自動化フレームワークを使用すると、InvokePattern を使用してボタンなどを呼び出すことができます。
InvokePattern invokePattern = ae.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;
invokePattern.Invoke();
しかし、自動化フレームワークを使用して右クリックなどをシミュレートする方法はありますか?
ms ui 自動化フレームワークを使用すると、InvokePattern を使用してボタンなどを呼び出すことができます。
InvokePattern invokePattern = ae.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;
invokePattern.Invoke();
しかし、自動化フレームワークを使用して右クリックなどをシミュレートする方法はありますか?
UIAutomation を使用してボタンを右クリックする直接的な方法は見つかりませんでしたが、これが私の回避策です。
[DllImport("user32.dll", EntryPoint = "SetCursorPos")]
[戻り値: MarshalAs(UnmanagedType.Bool)] private static extern bool SetCursorPos(int X, int Y);
Rect BoundingRect = (Rect)aeButton.GetCurrentPropertyValue(AutomationElement.BoundingRectangleProperty);
Mouse.MouseRightClick(BoundingRect);
public void MouseRightClick(System.Windows.Rect BoundingRectangle)
{
int X = (int)BoundingRectangle.Left + ((int)(BoundingRectangle.Right - BoundingRectangle.Left) / 2);
int Y = (int)BoundingRectangle.Top + ((int)(BoundingRectangle.Bottom - BoundingRectangle.Top) / 2);
MouseClick(MOUSEEVENTF_RIGHTDOWN, MOUSEEVENTF_RIGHTUP,X, Y);
}
protected void MouseClick(uint ButtonDown, uint ButtonUp, int X, int Y)
{
try
{
SetCursorPos(X, Y);
//Call the imported function with the cursor's current position
mouse_event(ButtonDown | ButtonUp, X, Y, 0, 0);
}
catch (Exception e)
{
throw new InvalidOperationException("MouseClick", e);
}
}
たぶんこれ:http://bytes.com/topic/c-sharp/answers/268148-c-equivalent-javas-robot-class
あなたが探しているものは何ですか?