una teclado tecla simular press presionar llamar example evento emular desde codigo boton asignar c windows winapi mouse mouseevent

press - simular teclado c#



¿Cómo puedo simular eventos de ratón desde el código? (2)

Me gustaría simular eventos de mouse usando la API de Win32; ¿Cómo puedo hacerlo?

Lo que quiero hacer es simular el evento en el nivel más básico, el nivel en el que el sistema tiene solo el tipo de evento y las coordenadas y aún no ha decidido a qué ventana debe retransmitirlo.

No sé si así es como funcionan las cosas. De cualquier manera, necesito ayuda para hacerlo. ¿Tendría que entrometerme en el nivel del conductor?

Para aclarar mis requisitos, no quiero apuntar a ninguna ventana, solo quiero que el sistema piense que el usuario hizo clic o movió el mouse. Y estaría codificando en C.


Utilice mouse_event (winuser.h). El siguiente código moverá el mouse y luego realizará un clic en la nueva ubicación. Puedes hacer esto en dos líneas pero esto es más detallado.

Tenga en cuenta que X e Y se especifican en mickeys , 0 a 65535. Esto se asigna a la resolución actual, es decir, 0,0 será la esquina superior izquierda y 65535,65535 será la esquina inferior derecha.

mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, x, y, 0, 0); mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);


Está buscando la función SendInput , que le permite sintetizar los movimientos del mouse y los clics en su código al especificar una matriz de estructuras de INPUT correspondientes a los eventos de entrada.

UINT WINAPI SendInput( __in UINT nInputs, // number of structures in the pInputs array __in LPINPUT pInputs, // an array of INPUT structures, representing an event __in int cbSize // the size, in bytes, of an INPUT structure );

Sin embargo, tenga en cuenta que esta función está sujeta al aislamiento de privilegios de la interfaz de usuario (UIPI , por sus siglas en inglés) , lo que significa que a su aplicación solo se le permite inyectar información a las aplicaciones que se ejecutan con un nivel de integridad igual o inferior.