Te enseño lo básico de SendInput

Tutoriales de referencia a la programación en Pauscal

Te enseño lo básico de SendInput

Notapor PowerDeath » Sab Jul 12, 2014 7:12 pm

Bueno, como dice en el post les voy a enseñar a usar esta API que nos provee Windows.
Como es obvio, comenzamos abriendo la información de esta api en MSDN
El enlace es: SendInput

Como pueden ver, su sintaxis es la siguiente.

Imagen

Traducido a Pauscal queda asi.

Imagen

Como ven, todos los tipos de datos son Entero y este alcanza de 0 hasta 4.294.967.295.
Sin decimales.

Ahora si volvemos al MSDN podremos ver que en la descripción de parametros nos pide en primer lugar el numero de estructuras que pasaremos, Generalmente 1.

En segundo lugar un puntero a una estructura INPUT.

Y en tercer lugar el tamaño de la estructura en bytes.


Imagen

Entonces, pasamos directamente a la estructura que encontraremos haciéndole clic al enlace INPUT.

El enlace es el siguiente: INPUT

Y encontramos la siguiente sintaxis.

Imagen

En pauscal lo traducimos de esta menera.

Imagen

A diferencia de C++, En pauscal no se puede declarar una Unión directamente en la estructura por lo que la declaramos arriba.

Volvemos a la MSDN y vemos que sus miembros son:

Imagen

En el parámetro "Type" establecemos el valor que señala que estructura vamos a utilizar.
0 Para INPUT_MOUSE
1 Para INPUT_KEYBOARD
2 Para INPUT_HARDWARE

y debajo de esto nos dice que:

"Mi" es una variable que llama a una estructura MOUSEINPUT
"Ki" es una variable que llama a una estructura KEYBOARDINPUT
"Hi" es una variable que llama a una estructura HARDWAREINPUT

y obviamente tenemos que agregar estas 3 estructuras a nuestro codigo fuente.

Sus sintaxis son:


Imagen
Imagen
Imagen

Lamentablemente no nos meteremos muy a fondo con los parametros de estas estructuras.

Traducido a Pauscal:

Imagen

Nuestro código quedaría así:

Imagen

Ya tengo todo el código escrito, pero no se como utilizarlo. ¿Como hago?

Bueno, supongamos que queremos utilizar SendInput para simular un Clic derecho del ratón.

Lo mejor es comenzando encerrando todo en un procedimiento para re-utilizar el código, Pero yo lo dejare libre ya que es algo ocasional.

Comenzamos creando una variable llamada "Send" de tipo INPUT Estructura. aunque se puede llamar de cualquier manera.

Recordemos algo, INPUT es la estructura a la cual le establecemos el tipo de Estructura que utilizaremos y que contiene un puntero hacia una Unión que contiene el resto de las Estructuras a las cuales le debemos establecer los datos.


Imagen

Ahora establecemos en la estructura INPUT el tipo de estructura que utilizaremos dentro de la unión, en este caso MOUSEINPUT.

Imagen

Ahora establecemos los valores a la estructura de esta manera.

Imagen

A través de la variable "Send" entramos a la unión "Union" y seleccionamos una de las 3 estructuras, "Mi" ya que es la variable que llama a MOUSE_INPUT Estructura.
Una ves dentro de "Mi" Seleccionamos llenamos "dwFlags" con el valor "&0008"

El valor "&0008" señala que "Se ha pulsado el botón derecho." pero recuerden, que no lo suelta. lo mantiene presionado.
Una vez rellenado los parámetros les quedara algo así.


Imagen

Y ya es hora de llamar a la función SendInput!
La utilizamos de la siguiente manera.


Imagen

Recuerden que explique esta función al inicio del post, pero igual lo are de nuevo.

Parámetro 1 _ El numero de estructuras en pInputs Array.Generalmente 1.
En segundo lugar un puntero a una estructura INPUT.
Y en tercer lugar el tamaño de la estructura en bytes.

Para obtener el puntero de una estructura escribimos un Arroba "@" delante de la variable que la invoca.

Para obtener el tamaño utilizamos la función Long en la variable que la invoca.

Y listo, si lo ejecutan podrán ver que se cliqueo el botón derecho del ratón Virtualmente obvio.

Código Final:


Imagen

¡Saludos!
Imagen
PowerDeath
 
Mensajes: 160
Registrado: Sab Ago 11, 2012 5:29 am

Sponsor


Re: Te enseño lo básico de SendInput

Notapor jmetin2 » Vie Oct 24, 2014 8:54 pm

Orales borther..... me da guasto que ya eres un programador experto en el lenguaje
:)
jmetin2
 
Mensajes: 167
Registrado: Jue Dic 15, 2011 12:07 pm
Ubicación: Merida, Yucatan, Mexico


Volver a Manuales, Tutoriales y Videotutoriales

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron