Lo que quiero hacer es manipular el mouse. Será un macro simple para mis propios fines. Entonces moveré mi mouse a cierta posición en la pantalla y haré clic como si estuviera haciendo clic con cierto intervalo.¿Cómo puedo simular un clic del mouse en una posición determinada en la pantalla?
Respuesta
Aquí hay un código que utiliza funciones no administradas para simular clics del ratón:
//This is a replacement for Cursor.Position in WinForms
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool SetCursorPos(int x, int y);
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
public const int MOUSEEVENTF_LEFTDOWN = 0x02;
public const int MOUSEEVENTF_LEFTUP = 0x04;
//This simulates a left mouse click
public static void LeftMouseClick(int xpos, int ypos)
{
SetCursorPos(xpos, ypos);
mouse_event(MOUSEEVENTF_LEFTDOWN, xpos, ypos, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, xpos, ypos, 0, 0);
}
Para mantener el mouse presionado durante un tiempo específico, puede Sleep()
el hilo que se está ejecutando esta función, por ejemplo:
mouse_event(MOUSEEVENTF_LEFTDOWN, xpos, ypos, 0, 0);
System.Threading.Thread.Sleep(1000);
mouse_event(MOUSEEVENTF_LEFTUP, xpos, ypos, 0, 0);
El código anterior mantener el ratón pulsado durante 1 segundo a menos que el usuario presiona las suelta el botón del ratón. Además, asegúrese de no ejecutar este código en el hilo de la IU principal, ya que hará que cuelgue.
Esto es mucho más simple que otras soluciones que he visto aquí. Gracias – Yablargo
Este código funciona bien para llevar el puntero a las coordenadas deseadas en la pantalla, pero por alguna razón el clic no funciona para mí. ¿Alguna idea de por qué? – john
Aquí puede tener los códigos para otros botones del mouse: https://msdn.microsoft.com/en-us/library/windows/desktop/ms646260(v=vs.85).aspx – Li3ro
Puede moverse en la posición XY. Ejemplo a continuación:
windows.Forms.Cursor.Position = New System.Drawing.Point(Button1.Location.X + Me.Location.X + 50, Button1.Location.Y + Me.Location.Y + 30)
para hacer clic, se puede usar el siguiente código:
using System.Runtime.InteropServices;
private const UInt32 MOUSEEVENTF_LEFTDOWN = 0x0002;
private const UInt32 MOUSEEVENTF_LEFTUP = 0x0004;
[DllImport("user32.dll")]
private static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, uint dwExtraInf);
private void btnSet_Click(object sender, EventArgs e)
{
int x = Convert.ToInt16(txtX.Text);//set x position
int y = Convert.ToInt16(txtY.Text);//set y position
Cursor.Position = new Point(x, y);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//make left button down
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);//make left button up
}
crédito a JOHNYKUTTY
La pregunta es sobre WPF, no sobre Formas. – Vlad
no funciona: windows.Forms.Cursor.Position = New System.Drawing.Point (Button1.Location.X + Me.Location.X + 50, Button1.Location.Y + Me.Location.Y + 30). También probé esto en formularios que no se mencionan para que no funcionen en wpf – MonsterMMORPG
- 1. win32: simular un clic sin simular el movimiento del mouse?
- 2. Simular clic real del mouse
- 3. Mover la pantalla a una posición determinada
- 4. Simular un clic del mouse en Flash mediante JavaScript
- 5. Cocoa: Obteniendo la posición actual del mouse en la pantalla
- 6. Cómo simular el clic del mouse en C#?
- 7. C# cómo mostrar un formulario en una posición específica del mouse en la pantalla?
- 8. Linux, cómo capturar pantalla y simular movimientos del mouse
- 9. ¿Cómo puedo obtener el componente en la posición de clic del mouse, cuando uso un TableCellEditor?
- 10. Simular clics del mouse en Python
- 11. Cómo simular el clic del mouse con el control WebBrowser
- 12. Obtener posición del mouse
- 13. ¿Cómo puedo simular un clic en una etiqueta de anclaje?
- 14. Obteniendo la posición del mouse en C#
- 15. Cómo leer la posición de bajo nivel del clic del mouse en Linux.
- 16. Cómo simular MAYÚS + Tecla del mouse presionar en java
- 17. ¿Es posible SIMULAR un clic del mouse con un mouse hacia abajo y hacia arriba?
- 18. ¿Cómo puedo simular los eventos del mouse desde el código?
- 19. Matlab: Cómo obtener la posición actual del mouse en un clic utilizando callbacks
- 20. WPF: ¿cómo puedo unir la posición de un control a la posición actual del mouse?
- 21. Cómo obtener la posición del mouse sobre un cierto control
- 22. Insertar un carácter en una cadena en una posición determinada
- 23. ¿Cómo desplazar UITableView a una posición determinada?
- 24. addGlobalMonitorForEventsMatchingMask solo devolviendo la posición del mouse
- 25. posición del cursor del mouse en Javascript?
- 26. ¿Cómo inflar una vista en una posición determinada?
- 27. Posición del cursor del mouse en C en el sistema de pantalla múltiple
- 28. C# XNA Posición del mouse
- 29. Cómo centrar un TextBlock en una posición determinada
- 30. Simular clic del mouse/Detectar color debajo del cursor en Python
Would [this] (http://stackoverflow.com/questions/8242409/simulate-mouse-clicks-at-a-certain-position-on-inactive-window-in-c-sharp/8242484#8242484) ser lo que necesitas? Además, como alguien sugirió en los comentarios, es posible que desee utilizar UIAutomation. – Nasreddine
gracias de trabajo :) – MonsterMMORPG
bien no funcionaba muy bien. ¿Cómo puedo configurar la duración del clic? al igual que 100 ms sigue presionando el mouse – MonsterMMORPG