En alguna ocasiones necesitamos desarrollar un programa o aplicación donde simule un evento del teclado para hacer diversas cosas, como por ejemplo controlar un videojuego de manera remota, haciendo spam, usando Kinect para leer los movimientos y controlar el flujo de un programa externo, en fin… para mi caso lo necesito para automatizar el tecleado de la flecha hacia arriba y hacia abajo, en los próximos post explicaré el motivo.
Inicialmente lo iba a hacer en Javascript nativo pero dadas las políticas de seguridad de Internet Explorer 11 me vi obligado a hacer otra solución, lo único que se me ocurrió fue hacerle una trampilla a IE y hacerle creer que el usuario era quien enviaba el comando del teclado, desgraciadamente no soy el único que se le ha ocurrido y no solo con buenas intenciones, averiguando a puro ensayo y error me di cuenta que para llevar a cabo esta acción la aplicación debe estar con permisos administrativos, de lo contrario IE 11 cierra la aplicación al detectar que está siendo aplicada esta técnica que comunmente se usa para generar spam.
Ok, luego entendiendo esos puntos claros no queda más que comenzar con un proyecto nuevo en Visual Studio, para este caso estoy usando el Framework 4.5 pero según la documentación la función que se usará es soportada desde el Framework 2.0.
En esta solución nueva seleccionar un proyecto para consola.
Se y entiendo muy bien que la función keybd_event fue sustituida por SendInput, pero nuevamente entra a jugar la seguridad de IE y es como si no le hiciera nada.
Entonces declararemos el siguiente método:
private static void SendInput(byte key, int time)
{
keybd_event(key, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
Thread.Sleep(time);
keybd_event(key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
}





Así es, hoy en las horas de la tarde en California Steve Ballmer el CEO de Microsoft anunció a nivel mundial que ha sido lanzada la versión preview para toda la línea de Office. En esta versión podrás encontrar Office 365 Home Premium, Office 365 Small Business Premium y Office 365 ProPlus.
You must be logged in to post a comment.