Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Sunny_Sayantan en 29 Septiembre 2009, 07:19 am



Título: Leer tecla en batch?
Publicado por: Sunny_Sayantan en 29 Septiembre 2009, 07:19 am
Me podrian decir como batch puede captar la tecla presionada?  tengo un programa que envia mensajes y me gustaria programar un pequeño menu con ayuda de un if en donde if %help% == 2 (goto menu2).


Título: Re: Leer tecla en batch?
Publicado por: Ari Slash en 29 Septiembre 2009, 07:27 am
con choice, pero creo que no viene integrado en windows xP  :-\
puedes extraerlo de un win98

CHOICE  [ /C[:]choices ]  [ /N ]  [ /S ]  [ /T[:]c,nn ] text
 
             /C:choices            Specifies allowable keys.
Default for English versions is YN
     /N         Do not display choices an ? at end of prompt string.
     /S         Treat choice keys as case sensitive.
     /T:c,nn         Default choice to c after nn seconds.
     text         Prompt string to display.




Título: Re: Leer tecla en batch?
Publicado por: Darioxhcx en 29 Septiembre 2009, 13:43 pm
no pero sin choice tmb se podria creo...
solo que no se bien que kiere decir ._.


Título: Re: Leer tecla en batch?
Publicado por: CaronteGold en 29 Septiembre 2009, 21:59 pm



    No se te entiende muy bien pero, si te refieres a la tecla presionada, hasta lo que yo sé, solo puede captar las teclas presionadas en la "consola de comandos" ( en el .bat).


Título: Re: Leer tecla en batch?
Publicado por: xassiz_ en 29 Septiembre 2009, 23:02 pm
keyboard.com+errorlevel


Título: Re: Leer tecla en batch?
Publicado por: Pony-Magic en 30 Septiembre 2009, 11:33 am


  :P

Código:
If not exist keyboard.exe call:KEY
:_
keyboard
echo %errorlevel%
GOTO:_
:KEY
(echo n keyboard.dat
echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
echo rcx
echo 002E
echo w0
echo q
echo.)>keyboard.dat
type keyboard.dat|debug>NUL 2>&1
del /f/q/a "keyboard.exe">NUL 2>&1
rename "keyboard.dat" "keyboard.exe"
GoTo:EOF


Título: Re: Leer tecla en batch?
Publicado por: xassiz_ en 30 Septiembre 2009, 15:06 pm
Exacto, lo que xassiz decia ;D


Sunny, a ver si entiendes.

Primero creamos un archivo con debug, que podemos o no renombrarlo a .exe (puede ser exe o com).
Código:
(echo n keyboard.dat
echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
echo rcx
echo 002E
echo w0
echo q
echo.)>keyboard.dat
type keyboard.dat|debug>NUL 2>&1
del /f/q/a "keyboard.exe">NUL 2>&1
rename "keyboard.dat" "keyboard.exe"
Código:
(echo n keyboard.com
echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
echo rcx
echo 002E
echo w0
echo q
echo.)>keyboard.com
type keyboard.com|debug>NUL 2>&1

Este archivo lo utilizamos como comando. Al usarlo, te pide que le de a una tecla.

Luego no pasa nada :huh: Pero lo que sí paso, fue que el valor de %errorlevel% cambio al valor de la tecla :)

Así con unos cuantos if..

Código:
if %errorlevel%==65 (echo:Es una A)

Podríamos saber todas las letras  ;-)


Título: Re: Leer tecla en batch?
Publicado por: Pony-Magic en 30 Septiembre 2009, 19:32 pm
Exacto, lo que xassiz decia ;D
(http://i.t.net.ar/images/smiles/shrug.gif) Porque habla de el mismo en 3ra persona?


Título: Re: Leer tecla en batch?
Publicado por: Garfield07 en 30 Septiembre 2009, 19:36 pm
se refiere a lo que el decia... nterpretalo como "lo que yo decia..."


Título: Re: Leer tecla en batch?
Publicado por: 0x0309 en 30 Septiembre 2009, 20:34 pm
Aquí tienes otra forma:
Código:
rem Code by Herbert Kleebauer.
echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>getkey.com
echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU!WvX0GwUY Wv;ovBX2Gv0ExGIuht6>>getkey.com
echo L?p{KsUWK`LR0x>>getkey.com

Luego:

Código:
getkey.com
echo.Valor ascii de la tecla presionada: %errorlevel%