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).
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.
no pero sin choice tmb se podria creo...
solo que no se bien que kiere decir ._.
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).
keyboard.com+errorlevel
:P
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
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).
(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"
(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..
if %errorlevel%==65 (echo:Es una A)
Podríamos saber todas las letras ;-)
Cita de: xassiz en 30 Septiembre 2009, 15:06 PM
Exacto, lo que xassiz decia ;D
(http://i.t.net.ar/images/smiles/shrug.gif) Porque habla de el mismo en 3ra persona?
se refiere a lo que el decia... nterpretalo como "lo que yo decia..."
Aquí tienes otra forma:
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:
getkey.com
echo.Valor ascii de la tecla presionada: %errorlevel%