utiles programacion por lotes ejemplos comandos batch bat avanzados avanzada archivos archivo batch-file keyboard

batch-file - por - programacion batch



Presione las teclas del teclado usando un archivo por lotes (2)

Estoy intentando desarrollar un archivo de proceso por lotes que puede presionar automáticamente la flecha izquierda y la tecla de flecha hacia la derecha varias veces con una pausa entre ellas. ¿Alguien podría ayudarme con esto?

PD: Intenté instalar el software de teclado automático, pero no pude instalarlos porque estaba en el trabajo. Necesito que este programa funcione en la PC de mi oficina.


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

El archivo de proceso por lotes a continuación 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 hacia arriba, que hace que se recupere el último comando ejecutado. El archivo por lotes es lo suficientemente simple como para ser entendido sin problemas, por lo que puede modificarlo para satisfacer 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 obtener una lista de nombres de teclas para SendKeys, consulte: http://msdn.microsoft.com/en-us/library/8c6yea83(v=vs.84).aspx

Por ejemplo:

LEFT ARROW {LEFT} RIGHT ARROW {RIGHT}

Para obtener una explicación más detallada de esta solución, consulte: GnuWin32 openssl s_client conn a WebSphere MQ server que no se cierra en EOF, se cuelga


Para que quede claro, quiere iniciar un programa desde un archivo por lotes y luego hacer que el archivo por lotes presione las teclas (en su ejemplo, las teclas de flecha) dentro de ese programa iniciado.

Si ese es el caso, no podrá hacer eso simplemente con un archivo ".bat" ya que el lanzamiento impediría que el archivo por lotes continúe hasta que finalice--

Mi primera recomendación sería usar algo como AutoHotkey o AutoIt si es posible, simplemente porque ambos tienen foros activos donde encontrará innumerables ejemplos de personas lanzando aplicaciones y enviando pulsaciones de teclas sin mencionar las herramientas para simplemente "grabar" lo que desea hacer. Sin embargo, dijiste que esta es una computadora de trabajo y es posible que no puedas cargar un programa de terceros ... pero no estás sin opciones.

Puede usar Windows Scripting Host desde algo así como un archivo .vbs para iniciar 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 usar Windows Scripting Host como un objeto COM a partir de su script PS o use Clase de Intereact de VB.

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

editar: solo para ayudarte a comenzar, puedes mirar aquí:

  1. Automatice las tareas con el método SendKeys de Windows Script Host
  2. Un hilo útil sobre SendKeys