elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Código para apretar una tecla elegida y que se cierre la aplicación en batch.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Código para apretar una tecla elegida y que se cierre la aplicación en batch.  (Leído 11,724 veces)
Xwatmin

Desconectado Desconectado

Mensajes: 47



Ver Perfil
Código para apretar una tecla elegida y que se cierre la aplicación en batch.
« en: 14 Abril 2013, 13:59 pm »

Se podría hacer?

Imaginaros que tenéis una aplicación que no se cierra o necesita varios pasos, se podría simplificar preparando el batch para que al apretar cierta tecla, forzara el cierre de la aplicación.

Esto puede hacerse o pido demasiado...


En línea

El físico no es importante, es más importante un ingeniero.
Meine programmen

Desconectado Desconectado

Mensajes: 121



Ver Perfil
Re: Código para apretar una tecla elegida y que se cierre la aplicación en batch.
« Respuesta #1 en: 14 Abril 2013, 14:48 pm »

Lo unico que se me ocurre seria usar el comando CHOICE entre comando y comando.
Código:
CHOICE /C YX /N /T 1 /D Y
IF %ERRORLEVEL%==2 (exit)
Tendrías que poner ese codigo entre cada comando. En CHOICE, /C YX, dice que las teclas posibles son Y y X; /N dice que no se mostrara ningun mensaje en la pantalla; /T 1 dice que dara 1 segundo de tiempo para introducir la letra, y /D Y dice que la opcion por defecto es Y. Si pulsases Y la variable %errorlevel% sería 1 y si pulsases X, sería 2. Ralentizaria mucho el programa y es una solución un poco chapucera, pero es lo unico que se me ocurre por ahora.


En línea

REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!

Xwatmin

Desconectado Desconectado

Mensajes: 47



Ver Perfil
Re: Código para apretar una tecla elegida y que se cierre la aplicación en batch.
« Respuesta #2 en: 14 Abril 2013, 16:15 pm »

Se acerca a lo que digo pero no lo suficiente.

De la misma forma que se puede apagar una aplicación pasando un tiempo, no veo imposible el crear un código para que al pulsar la tecla que elijamos, el batch mande la orden de cerrar la aplicación...

Llevo toda mañana leyendo foros y probando, si adelanto algo os aviso...
En línea

El físico no es importante, es más importante un ingeniero.
Meine programmen

Desconectado Desconectado

Mensajes: 121



Ver Perfil
Re: Código para apretar una tecla elegida y que se cierre la aplicación en batch.
« Respuesta #3 en: 14 Abril 2013, 17:38 pm »

El problema es que batch no puede hacer dos cosas a la vez, asi que no puede esperar a que pulses una tecla para cerrarse a la vez que hace su funcion. Podrias utilizar dos archivos, el principal, que al abrirlo crea y abre en una nueva ventana el segundo, y el otro, que cuando introduces la tecla se borra a si mismo y cierra las dos ventanas mediante el comando TASKKILL. Sería añadir al principio del .bat importante
Código:
(echo @ECHO OFF
echo CHOICE /C X /N
echo DEL %%0
echo TASKKILL*
echo exit)>>2.bat
start CMD.exe /K "2.bat"

*Donde puse TASKKILL deberia de ir el comando TASKKILL de manera que cerrara todas las ventanas de batch, o solo la del programa 1. Te la pondría yo, pero no estoy muy seguro de como funciona el comando.
En línea

REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!

daniel.r.23

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: Código para apretar una tecla elegida y que se cierre la aplicación en batch.
« Respuesta #4 en: 14 Abril 2013, 21:07 pm »

Buenas en uno de mo consultas pregunte algo sobre captar pulasaciones en el teclado, y me respondieron exactamente lo mismo que a ti.. "la unica manera es usando CHOICE"
pero buscando y buscando encontre en un post que hablaban de una libreria KEYBOARD.dat
que lo que hace es registrar las pulsaciones de 'algunas' teclas no todas, y lo que te devuelve es el cód en ascii y eso porgramandolo bien tenes un mapa de cracteres bien amplio.
Eso si este registra tecla por tecla, por lo que si concatenas las teclas que vos queres ahi tenes un conjunto de letras que pueden activar o realizar una funcion espesifica..
Espero haberme explicado
En línea

Xwatmin

Desconectado Desconectado

Mensajes: 47



Ver Perfil
Re: Código para apretar una tecla elegida y que se cierre la aplicación en batch.
« Respuesta #5 en: 14 Abril 2013, 21:23 pm »

Gracias voy a mirarlo...
En línea

El físico no es importante, es más importante un ingeniero.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.810



Ver Perfil
Re: Código para apretar una tecla elegida y que se cierre la aplicación en batch.
« Respuesta #6 en: 15 Abril 2013, 12:34 pm »

De la misma forma que se puede apagar una aplicación pasando un tiempo, no veo imposible el crear un código para que al pulsar la tecla que elijamos, el batch mande la orden de cerrar la aplicación...

Si, claro... eso es algo muy posible en cualquier lenguaje, pero en Batch lamentáblemente NO, lo que quieres es capturar los eventos del teclado, y no puedes hacerlo de ninguna manera, es imposible.

Batch es procesamiento por lotes, como te han comentado no se pueden hacer 2 cosas al mismo tiempo... Primero se procesa "X", y luego "Y", no puedes procesar "Y" a la espera de "X".

A lo que daniel.r.23 se refiere es al archivo keyboard.dat de la aplicación Keyboard.exe, que es un comando de Windows XP y anteriores, dicho comando fue excluido en win 7/8 (dudo que lo puedas usar en ese SO), pero para nada sirve para tu propósito, el comando keyboard.exe es un prompt (Como set /P) es  decir, es un comando que pausa la ejecución del script (como ya dijimos no se pueden procesar 2 cosas a la vez en Batch) pero con la diferencia de que sólo permite pulsar una tecla, y al pulsarla devuelve el código de la letra, nada más.

La única solución es recurrir a otro lenguaje como VBScript, o alguna aplicación CommandLine externa, por ejemplo para configurar un Hotkey del escritorio (O un hotkey global), y al teclear el hotkey, mandar la orden de cerrar el proceso de la CMD.

EDITO: ...O generar un exe en otro lenguaje que cumpla lo que pides, capturar la tecla "X" del keyboard y si se pulsa cerrar la instancia de tu CMD, yo la haría para que pudiera pasarle dos argumentos, un argumento para la tecla a capturar, y un segundo argumento para el título del script (el título de la ventana del CMD que se qquiere cerrar), para no cerrar todos los procesos "CMD.exe" de golpe. Es algo fácil hacerlo, de verdad.

Saludos!


« Última modificación: 15 Abril 2013, 12:49 pm por EleKtro H@cker » En línea

daniel.r.23

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: Código para apretar una tecla elegida y que se cierre la aplicación en batch.
« Respuesta #7 en: 16 Abril 2013, 04:28 am »

Pasate por este post:
http://foro.elhacker.net/scripting/pulsaciones_en_batch-t383528.0.html;msg1830255#msg1830255
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con el codigo para apretar el click
Programación Visual Basic
kakinets 1 1,487 Último mensaje 8 Diciembre 2005, 23:31 pm
por Sancho.Mazorka
Codigo Batch (abrir aplicacion oculta)
Scripting
revenge1252 3 3,637 Último mensaje 12 Febrero 2008, 15:35 pm
por GUN$
Microsoft es elegida la mejor empresa para trabajar del mundo
Noticias
wolfbcn 2 2,252 Último mensaje 1 Noviembre 2011, 09:56 am
por crazykenny
Presionara una tecla y que se cierre el programa en C++
Programación C/C++
SpockUrielo 1 2,437 Último mensaje 18 Junio 2012, 20:22 pm
por satu
Evitar cierre de aplicacion vb
Programación General
Buggcon 2 3,625 Último mensaje 4 Abril 2013, 02:23 am
por Buggcon
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines