[AYUDA] [VBS] [BATCH] ¿Sendkeys en unión con batch?

Iniciado por .:Xx4NG3LxX:., 20 Enero 2020, 23:02 PM

0 Miembros y 1 Visitante están viendo este tema.

.:Xx4NG3LxX:.

Hola otra vez!

No es por abrir hilos sin sentido (lo digo xq acabo de abrir uno nuevo hace un rato) pero en serio, necesito orientación... Y ayuda.

¿Se puede usar la función SendKeys en conjunto con un Batch?

Algo como...

Código (dos) [Seleccionar]

@echo off
echo.
echo Se enviara una pulsación de teclado...
pause>nul
call sendkeys.vbs


Pero más elaborado claro.

Gracias de antemano...
"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"



Eleкtro

#1
Cita de: .:Xx4NG3LxX:. en 20 Enero 2020, 23:02 PM
¿Se puede usar la función SendKeys en conjunto con un Batch?

No por si solo, pero siempre puedes ejecutar un script VBS (donde usarás la función SendKeys) desde tu batch-script.

Si la intención es enviar la pulsación a la ventana de la CMD, aquí tienes un ejemplo (con dos segundos de retraso que puedes disminuir a cero):

Código (dos) [Seleccionar]
@ECHO OFF & (CHCP 1252)1>NUL

Echo+
Echo:Se enviará una pulsación del teclado para elegir la opción [1]...
Echo+

(
 Echo:Set WshShell = WScript.CreateObject^("WScript.Shell"^)
 Echo:WScript.Sleep^(2000^)
 Echo:WshShell.SendKeys^("1"^)
 Echo:WScript.Quit^(0^)
)>"%TEMP%\sendkeys.vbs"
START /B "" "cscript.exe" /NoLogo "%TEMP%\sendkeys.vbs"

Choice /C "123" /M "Opciones: "
Echo+

Pause&Exit /B 0


De todas formas no se para que quieres hacer algo así, pero ten en cuenta que la función sendkeys envía una pulsación a la ventana activa (la ventana que tenga el foco de entrada activo), y esta no tiene por que siempre ser necesariamente la ventana de la CMD donde corres tu script, así que dependiendo de lo que quieras hacer, primero tienes que asegurarte de activar la ventana a la que quieres enviar la pulsación, o de lo contrario utilizar un lenguaje diferente y más sofisticado que VBS para poder llamar a la función SendMessage/PostMessage de la API de Windows, la cual permite enviar una pulsación de teclado a una ventana en segundo plano/cualquier ventana.

Saludos








.:Xx4NG3LxX:.

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"



Mudereded401

Oye, Si lo que quieres es mandar una serie de pulsaciones de teclas (La verdad no sé para que quieres eso), No te recomendaria usar un Script, ya que esos se ejecutan demasiado rapido (aunque le pongas tiempo entre teclas), No sería muy util. De todas formas te puedo decir que En mi pc Tengo instalado un programa llamado "Hot keyboard pro". Si es para mover el mouse, mandar pulsaciones de teclado, mover ventanas, minimizarlas, Meter textos desde el porta papeles o algun .txt puesto, Te lo recomiendo.

PD: Trae otras funciones muy útiles pero no las Digo, ya que preguntaste solo por Escribir con el teclado.
Pero aunque los que sepan me digan que no, yo sé muy bien que existe el lado oscuro del sol. – El lado soleado de la calle