AutomationElement child = walker.GetFirstChild(el);
usando la automatización de Windows ¿Cómo simulo un clic izquierdo en Niño?Dado un elemento de automatización, ¿cómo simulo un solo clic izquierdo en él
AutomationElement child = walker.GetFirstChild(el);
usando la automatización de Windows ¿Cómo simulo un clic izquierdo en Niño?Dado un elemento de automatización, ¿cómo simulo un solo clic izquierdo en él
tratan con:
AutomationElement child = walker.GetFirstChild(el);
System.Windows.Point p = child.GetClickablePoint();
Mouse.Move((int)p.X, (int)p.Y);
Mouse.Click(MouseButton.Left);
Enlaces:
AutomationElement.GetClickablePoint Method
Simulate mouse Enter/Move/Leave on WPF control without real mouse usage
Editar para hacer comentarios
Ver los siguientes enlaces:
Mouse.cs
NativeMethods.cs
Introduction to TestApi – Part 1: Input Injection APIs
En lugar de enviar los eventos del ratón, puede Invoke
a través de la InvokePattern
así:
public void InvokeAutomationElement(AutomationElement automationElement)
{
var invokePattern = automationElement.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;
invokePattern.Invoke();
}
No todas las ventanas admiten el patrón Invoke – Max
Esto es cierto, pero supongo que si puede hacer clic en él puede hacerlo con automatización (y sin hacer clic con el mouse). Si no es compatible con el patrón Invoke, probablemente sea compatible con 'SelectionItemPattern', por lo que puede' Seleccionar'. – Levi
He visto ventanas que solo son compatibles con WindowPattern y TransformPattern. De la pregunta no puedo decir por qué se realiza el clic. Puede ser que Stacker quiera enfocar la ventana (solo una suposición). Por lo tanto, es posible que no haya actividad inmediata que vaya a "invocarse". – Max
si el control tiene un "ClickablePoint" que puede utilizar el código
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);
donde AutoItX3Lib es la API de C# para AutoIt
¿Qué debo hacer para obtener acceso a la clase Mouse? – Stacker
http://longan.googlecode.com/svn-history/r87/trunk/Dtf/Dtf/Core/Mouse.cs –
Voy a intentar esto, aunque creo que el simple hecho de hacer clic en xey hará que el problema del mouse no se da cuenta de lo que está haciendo clic para que el elemento no esté en la parte superior de la ventana y que el clic no esté en ninguna parte – Stacker