[Batch][Ansi.sys] Calculadora con colores

Iniciado por modubat, 3 Septiembre 2010, 16:23 PM

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

modubat

Les dejo esta tontería que hice para que vean un poco como funciona ansi.sys y es otra manera de dibujar en la consola sin necesidad de debug

Código (dos) [Seleccionar]
::by modubat
@echo off
SetLocal EnableExtensions
echo we recommend to do first a copy of config.nt  & pause
0<nul more /c
:: make a backup of config.nt in temp folder
>nul Copy /Y "%windir%\System32\config.nt" "%tmp%\config.nt"
:: load ansi.sys
del /f /q "%windir%\System32\config.nt"
For %%a In (
"rem Ansi.sys loaded"
"DOSONLY"
"dos=high, umb"
"files=40"
"DEVICE=%WinDir%\System32\ANSI.SYS /x"
) Do >>"%WinDir%\System32\config.nt" Echo.%%~a 2>&1
command /c echo First number:
set/p "num1=>"
command /c echo Second number:
set/p "num2=>"
set/a a=num1+num2,b=num1-num2,c=num1*num2,d=num1/num2
command /c echo Results
command /c echo %num1% + %num2% = %a%
command /c echo %num1% - %num2% = %b%
command /c echo %num1% * %num2% = %c%
command /c echo %num1% / %num2% = %d%
:: check if ansi was loaded
Mem/c | Findstr.exe /I "ansi" >nul ^
|| Echo ANSI.SYS is not loaded
:: restore the config.nt file
Copy /Y "%tmp%\config.nt" "%windir%\System32\config.nt" 1>nul
For %%i in ("%temp%\Config.nt") do del /f /q %%~fi
EndLocal
Pause >nul
Exit

flony

lo voy a leer...alguna explicacion, comentario, no se...algo mas detallado de para q sirve
si un problema no tiene solucion entonces no es un problema...es algo inevitable

modubat

Cita de: flony en  3 Septiembre 2010, 17:38 PM
lo voy a leer...alguna explicacion, comentario, no se...algo mas detallado de para q sirve

es un fichero que sirve para usar colores, posicionar el cursor en una posición, borrar lineas y redefinir teclas

hay que tenerlo cargado en el archivo config.nt con la linea DEVICE=%WinDir%\System32\ANSI.SYS /x
y usar el interprete command.com

los colores son faciles son 3 numeros que hacen referencia a atributos, color de letra y color de fondo
posicionar el ratón es simplemente [posicion x] [posicion y]

command /c echo  Prueba

esto escribiría en la posicion 2,2 con intensidad alta color de letra rojo y de fondo negro la palabra Prueba

un enlace: http://academic.evergreen.edu/projects/biophysics/technotes/program/ansi_esc.htm

un ejemplo
Código (dos) [Seleccionar]

:Ini
mode con cols=80 lines=25
set/a "token=%random% %% 25 + 1", cont+=1
For /F "Tokens=%token%" %%A In (
"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z") Do (
set "letra=%%~A")
set/a "x=%random% %% 25 + 1", "y=%random% %% 80 + 1", ^
"color=%random% %% 8 + 30"
command /c echo [%x%;%y%H [4;%color%;40m%letra%
ping localhost -n 2 >nul
if %cont% NEQ 20 goto :Ini