Normas del foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Noviembre 18, 2008, 01:23:32
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, |Shadow|)  |  Tema: Para mejorar los menus... -By: Espectro Infernal- 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Para mejorar los menus... -By: Espectro Infernal-  (Leído 903 veces)
Espectro Infernal
T0 d0: -> Mejorar 3 en raya
Moderadores
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1022


ESPECTRO INFERNAL


Ver Perfil Email
« en: Octubre 17, 2006, 07:39:06 »

Se me ocurrió postear esto, que justamente ayer, lo "ideamos" iobh y yo... Se trata de mejorar un poco los menus de un programa .bat

Para hacerlos más vistosos, como bien se explica en un post de Saok, podemos utilizar Tablas, con las letras: É,Í,È,¼,»,º.

Imaginemos que hacemos un generador de viruses (es mi casoo que llevo codeandolo hace unos meses)...:

----------------------
:menu
  @echo off
cls

echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º  - PRIMERA OPCION      º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º  - SEGUNDA OPCION     º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º  - TERCERA OPCION      º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

set /p opcion= Que opcion escojes?  -

if %opcion%==1 (goto primera)
if %opcion%==2 (goto segunda)
if %opcion%==3 (goto tercera) else (goto menu)

--------------------------------

Con lo señalado en rojo, consegimos entablar las opciones, cosa que hara de nuestro menu principal, algo mucho mas bonito visualmente.

Para hacerlo mas claro aun, el que se puede presionar, podriamos emmarcar el numero de lo que se debe teclear para ir a esa opcion, como si fues eun indice:

echo ÉÍÍÍÍÍÍ»  ÉÍÍÍ»
echo º yop º  º 1 º
echo ÈÍÍÍÍÍͼ ÈÍÍͼ

Con lo que aclarariamos que para ir a la opcion o seccion "yop" tendriamos que teclear "1".

--------------

Tenemos un menu facil de entender y mas o menos agradable visualmente. El problema es que si pone algo con espacios, por ejemplo: "2 3" se cerraria el programa. Esto es algo muy comun en los menus de los programas en .bat
Deemos hacer lo siguiente:

------------------

:menu
  @echo off
cls

echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º  - PRIMERA OPCION      º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º  - SEGUNDA OPCION     º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º  - TERCERA OPCION      º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

set /p opcion= Que opcion escojes?  -

set opcion=%opcion: =_%

if %opcion%==1 (goto primera)
if %opcion%==2 (goto segunda)
if %opcion%==3 (goto tercera) else (goto menu)

--------------------

Lo marcado en amarillo es lo que acabamos de actualizar, con esto, creamos otra variable, "opcion" que a partir de la variable "opcion" cambia tdos los " " por "_" de tal manera que si tecleamos: "hola tio" el programa lo entendera como: "hola_tio". Esto se puede utilizar para no dejar espacios entre operaciones... Si no hiciesemos esto, al escribir una frase con espacios, cerraria el programa con esto, lo coje sin espacios y lo califica en "else" por lo que vuelve al menu...

-----------------------

Por ultimo, lo que conseguimos (mas el k yo xD) es que sin escribir nada, solo pulsando "enter", se nos iva el programa...

Estuvimos provando los dos como solucionarlo y al final, con ayuda mutua, conseguimos el resultado:

------------------------

:menu
  @echo off
cls

echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º  - PRIMERA OPCION      º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º  - SEGUNDA OPCION     º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo º  - TERCERA OPCION      º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

set /p opcion= Que opcion escojes?  -
if "opcion"=="" (goto menu)
set opcion=%opcion: =_%

if %opcion%==1 (goto primera)
if %opcion%==2 (goto segunda)
if %opcion%==3 (goto tercera) else (goto menu)

-----------------------

(Lo actualizado esta en amarillo). Con esta linea añadida, analizamos si el valor es vacio, empty; por eso mismo se convierte en una "if" normal, solo con la diferencia de la variable que comprovamos (%opcion%) deve ir entre comillas: ("%opcion%"). Luego, comparamos si opcion es "" (es decir, resultado vacio, empty) volvera a goto menu.

Con esto hemos conseguido que por mucho que apretemos enter, no saldremos del programa. Otra buena utilidad Wink

Esto ltimo es muy util si es un programa con muchos menus dentro de otros menus... que sin querer presionamos "enter" sin haver escrito nada y se nos cierra el programa. Con esto NO pasa.

Espero que lo hayan entendido, cualquier duda aquí Wink

Bytes, Espectro Infernal.
« Última modificación: Abril 08, 2008, 01:31:45 por Espectro Infernal » En línea





lessicon
Miembro
*****
Desconectado Desconectado

Mensajes: 86


Ver Perfil WWW Email
« Respuesta #1 en: Octubre 17, 2006, 10:08:54 »

hay 1 manera tmb sencilla d hacer k cuando pulsa el enter vuelva al menu es la k vengo utilizando yo en mis bats k si no elige ningunas de las opciones puestas ahi vaya al menu seria algo asi

:menu
echo opcion 1-.....
echo opcion 2-.....
echo opcion 3-.....

set /p var1=escriba su opcion aki:

if %var1%==1 (goto 1)
if %var1%==2 (goto 2)
if %var1%==3 (goto 3)

goto :menu

de esta manera si no introduce ninguna de las 3 opciones volvera al menu
o incluso si solo hay 1 respuesta q poner como por ejemplo en 1 trivial podemos usar if %var1%NEQ1 (goto ...)

espero haberte ayudado

SALUD2
En línea
Espectro Infernal
T0 d0: -> Mejorar 3 en raya
Moderadores
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1022


ESPECTRO INFERNAL


Ver Perfil Email
« Respuesta #2 en: Octubre 17, 2006, 11:16:30 »

En línea





slipy
Habitual
*****
Desconectado Desconectado

Mensajes: 334


konmigo los k kieran, kontra mi los k puedan

maeso03@hotmail.com slipy
Ver Perfil WWW
« Respuesta #3 en: Octubre 17, 2006, 12:16:37 »

En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion




-=slipy=-

Konmigo Los K Kieran, Kontra Mi Los K Puedan
Espectro Infernal
T0 d0: -> Mejorar 3 en raya
Moderadores
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1022


ESPECTRO INFERNAL


Ver Perfil Email
« Respuesta #4 en: Octubre 17, 2006, 12:48:30 »

En línea





slipy
Habitual
*****
Desconectado Desconectado

Mensajes: 334


konmigo los k kieran, kontra mi los k puedan

maeso03@hotmail.com slipy
Ver Perfil WWW
« Respuesta #5 en: Octubre 17, 2006, 01:27:50 »

XD
pos no!!! no lo entiendo... Sad

no se komo sleccionar una opcion ni komo poner algo dentro de la opcion

y no se k kiere decir goto :S

salu2!!!!

P.D: si la finalidad de esto es acer un menu wapo y vistoso, no podrias kambiar tmb el kolor???

-=slipy=-
En línea


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion




-=slipy=-

Konmigo Los K Kieran, Kontra Mi Los K Puedan
Espectro Infernal
T0 d0: -> Mejorar 3 en raya
Moderadores
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1022


ESPECTRO INFERNAL


Ver Perfil Email
« Respuesta #6 en: Octubre 18, 2006, 06:17:30 »

En línea





lessicon
Miembro
*****
Desconectado Desconectado

Mensajes: 86


Ver Perfil WWW Email
« Respuesta #7 en: Octubre 18, 2006, 11:11:51 »

En línea
master28
Miembro
*****
Desconectado Desconectado

Mensajes: 67


Yo soy una divina creacion¡ xd


Ver Perfil Email
« Respuesta #8 en: Agosto 20, 2008, 09:47:43 »

hey kiero agregar k una manera d ek el programa no c cierre cuando hagamos enter es:

if %var%=0  goto master

:master
msg * escribe un numero idiota
goto menu
En línea

Dile no a las drogas somos muchos y hay poca¡¡¡
att:CooL MasteR
:. Soldier .:
Game Over
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1052


I'm Jarvis


Ver Perfil WWW Email
« Respuesta #9 en: Agosto 20, 2008, 10:01:17 »

Si te refieres a que si el usuario presiona enter en el programa y que siga normal sin que se salga seria asi:

:inicio
set /p var =  Escriba una opcion:
if "%var%"=="" (goto inicio)

PD. Perdon no me di cuenta de que era un post viejo, la respuesta que te di master28, esta anotada arriba en la explicación de Espectro Infernal croe que no leiste bien.

Salu2
« Última modificación: Agosto 20, 2008, 10:05:41 por :. Soldier .: » En línea


Visita mi Blog: ↓

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion

sertorio
Miembro
*****
Conectado Conectado

Mensajes: 28



Ver Perfil Email
« Respuesta #10 en: Octubre 02, 2008, 11:10:59 »

Hola, me podriais decir que teclas hay que pulsar para sacar los simbolos ¼ y »

Saludos.
En línea

†CrazY†
Recien Llegado
*
Desconectado Desconectado

Mensajes: 3


Ver Perfil Email
« Respuesta #11 en: Octubre 03, 2008, 07:39:02 »

hay 1 manera tmb sencilla d hacer k cuando pulsa el enter vuelva al menu es la k vengo utilizando yo en mis bats k si no elige ningunas de las opciones puestas ahi vaya al menu seria algo asi

:menu
echo opcion 1-.....
echo opcion 2-.....
echo opcion 3-.....

set /p var1=escriba su opcion aki:

if %var1%==1 (goto 1)
if %var1%==2 (goto 2)
if %var1%==3 (goto 3)

goto :menu

de esta manera si no introduce ninguna de las 3 opciones volvera al menu
o incluso si solo hay 1 respuesta q poner como por ejemplo en 1 trivial podemos usar if %var1%NEQ1 (goto ...)

espero haberte ayudado

SALUD2

Waaa sip que aunque soy nuevo en esta comunidad :p
primero decidi empezar con este lenguaje de programacion ^^
aunque apenas voee e hecho una sola creacion :p pero ni al caso con esta web sino que es como un autologin para un juego :p
pero pzz como iva diciendo como dice este amigo es mas facil y mas entendible ^^
y no muy dificil de comprender :p
ejejejEJ

En línea
alesteir
Visitante
« Respuesta #12 en: Octubre 03, 2008, 08:03:06 »

Hola, me podriais decir que teclas hay que pulsar para sacar los simbolos ¼ y »

Saludos.


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion

En línea
sertorio
Miembro
*****
Conectado Conectado

Mensajes: 28



Ver Perfil Email
« Respuesta #13 en: Octubre 09, 2008, 01:09:37 »

Gracias, Alesteir
En línea

Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, |Shadow|)  |  Tema: Para mejorar los menus... -By: Espectro Infernal- « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.7 | SMF © 2006-2007, Simple Machines LLC