Pulsar las teclas del teclado mediante un archivo por lotes

Estoy tratando de desarrollar un archivo por lotes que pueda pulsar automáticamente la flecha izquierda y la flecha derecha durante n veces con una pausa entre ellas. ¿Podría alguien ayudarme con esto?

P.D: Intenté instalar un software de teclado automático pero no pude instalarlo porque estaba en el trabajo. Necesito este programa para trabajar en mi PC de la oficina.

¡Vaya! ¿Significa esto que debes aprender un lenguaje de programación diferente sólo para enviar dos teclas al teclado? Hay formas más sencillas de conseguir lo mismo. :-)

El archivo Batch de abajo es un ejemplo que inicia otro programa (cmd.exe en este caso), le envía un comando y luego envía una tecla de Flecha Arriba, que hace recuperar el último comando ejecutado. El archivo Batch es lo suficientemente simple como para ser entendido sin problemas, así que puede modificarlo para que se ajuste a sus necesidades.

@if (@CodeSection == @Batch) @then

@echo off

rem Use %SendKeys% to send keys to the keyboard buffer
set SendKeys=CScript //nologo //E:JScript "%~F0"

rem Start the other program in the same Window
start "" /B cmd

%SendKeys% "echo off{ENTER}"

set /P "=Wait and send a command: " < NUL
ping -n 5 -w 1 127.0.0.1 > NUL
%SendKeys% "echo Hello, world!{ENTER}"

set /P "=Wait and send an Up Arrow key: [" < NUL
ping -n 5 -w 1 127.0.0.1 > NUL
%SendKeys% "{UP}"

set /P "=] Wait and send an Enter key:" < NUL
ping -n 5 -w 1 127.0.0.1 > NUL
%SendKeys% "{ENTER}"

%SendKeys% "exit{ENTER}"

goto :EOF

@end

// JScript section

var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));

Para ver una lista de nombres de claves para SendKeys, consulte: http://msdn.microsoft.com/en-us/library/8c6yea83(v=vs.84).aspx

Por ejemplo:

LEFT ARROW    {LEFT}
RIGHT ARROW   {RIGHT}

Para una mayor explicación de esta solución, véase: https://stackoverflow.com/questions/16823068/gnuwin32-openssl-s-client-conn-to-websphere-mq-server-not-closing-at-eof-hangs/16868982#16868982

Comentarios (6)

Para que quede claro, ¿quieres lanzar un programa desde un archivo por lotes y luego hacer que el archivo por lotes pulse las teclas (en tu ejemplo, las teclas de dirección) dentro de ese programa lanzado?

Si ese es el caso, usted no va a ser capaz de hacer eso con simplemente un ".bat" archivo como el lanzado se detiene el archivo por lotes de continuar hasta que terminó -.

Mi primera recomendación sería utilizar algo como AutoHotkey o AutoIt si es posible, simplemente porque ambos tienen foros activos donde you'd encontrar un sinnúmero de ejemplos de la gente el lanzamiento de aplicaciones y el envío de pulsaciones de teclas por no hablar de las herramientas para simplemente "grabar" lo que quiere hacer. Sin embargo, usted dijo que este es un equipo de trabajo y que no puede ser capaz de cargar un programa de terceros ... pero usted es & # 39; t sin opciones.

Usted puede utilizar Windows Scripting Host de algo así como un archivo .vbs para lanzar un programa y enviar claves a ese proceso. Si está ejecutando una versión de Windows que incluye PowerShell 2.0 (Windows XP con Service Pack 3, Windows Vista con Service Pack 1, Windows 7, etc.) puede utilizar Windows Scripting Host como un objeto COM desde su script PS o utilizar la clase Intereact de VB&#39.

Los detalles de cómo hacerlo están fuera del alcance de esta respuesta, pero puedes encontrar numerosos ejemplos utilizando los métodos que acabo de describir buscando en SO o en Google.

edit: Para ayudarte a empezar puedes mirar aquí:

  1. Automatizar tareas con el método SendKeys de Windows Script Host's
    1. Un hilo útil sobre SendKeys
Comentarios (0)