[BATCH]¡Convertir keyboard.com en CHOICE!

Iniciado por Binary_Death, 27 Julio 2012, 04:53 AM

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

Binary_Death

Uno de los grandes inconvenientes de los batch games es sin duda que muchos necesitan el comando choice para poder seguir la ejecución del juego mientras se espera la entrada por el teclado.

Con este método, se puede lograr el mismo efecto e incluso mejor, porque no hay un tiempo de espera de 1 segundo.


@Echo Off
setlocal enableextensions enabledelayedexpansion
chdir /d "%TEMP%"
if not exist "keyboard.com" call :_code[keymake]
goto:_code[%~1]
:_code[]

start "" /b "%~0" keypress

:_keypress
if exist @ (
1>nul 2>&1,set/p "k_p=" 0<@
if "!k_p!" EQU "65" echo. Presionaste A & ping -n 2 localhost > nul
if "!k_p!" EQU "66" echo. Presionaste B & ping -n 2 localhost > nul
1>nul 2>&1,del /f /q @
)
echo: Mientras tanto, mostramos mensajes.
goto :_keypress

:_code[keypress]
keyboard.com & echo.!errorlevel!>@ 2>nul
goto:_code[keypress]

:_code[keymake]
(ECHO.N KEYBOARD.COM
ECHO.E 0000 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
ECHO.R CX
ECHO.000E
ECHO.W0
ECHO.Q)|DEBUG 1>NUL 2>&1
GOTO:EOF


¡Un saludo!

PD: Lo malo es que no funciona con ansi.sys  :xD ni siquiera sé bien por qué, pero parece ser que el command.com interrumpe la ejecución del hilo principal y se la da al hilo secundario, es algo raro, pero bueh, usando el método de toda la vida para los batch games no hay ningún problema.