elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  GUIC | Interfaz grafica en consola [colous v5]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: GUIC | Interfaz grafica en consola [colous v5]  (Leído 5,466 veces)
bolivianito

Desconectado Desconectado

Mensajes: 41



Ver Perfil
GUIC | Interfaz grafica en consola [colous v5]
« en: 7 Agosto 2010, 16:11 pm »



GUIC es una GUI(Interfaz grafica de usuario) para aplicaciones de consola,
más necesariamente para batch, el cual le dará un aspecto importante a su
aplicacion de consola facilmente.
Está creado con colous v5




Bueno , paso a explicar su uso:

Primero hay que incluir 2 fragmentos de codigos a tu bat:
Código:
@echo off
===============================================
:::::::::Codigo necesario para el uso del GUI:::::::::::
===============================================
setlocal enabledelayedexpansion
If not exist "%windir%\recibe.bat" (copy /y "%cd%\GUI\*.*" "%windir%\")
colous version
if %errorlevel% NEQ 5 (exit)
call:restablecer
===============================================


::Acá se puede codear libremente
:: ASDASD
:: xDD



::Ahora viene el segundo fragmento




===============================================
:::::::::Codigo necesario para el uso del GUI:::::::::::::::::::::
===============================================
:recibe
for /f "tokens=*" %%a in ('recibe.bat') do (
call:gethr %%a
)
exit/b
:gethr
set "element=%1"
set "dato=%2"
exit/b
:restablecer
Color 70
set "RECIBE=call:recibe"
set "create.boton=call boton.bat"
set "create.boton2=call boton2.bat"
set "create.checkbox=call checkbox.bat"
set "create.textbox=call box.bat"
if not exist objects.gui (exit/b)
for /f "tokens=*" %%a in ('type objects.gui') do (del /q /f /s "%%a">nul)
del /q /f /s "objects.gui">nul
del /q /f /s text.t>nul
echo.>"%windir%\test.check"
del /q /f "%windir%\*.check">nul
exit/b
===============================================

Listo, ahora tenes la posibilidad de crear elementos, limpiar los restos de los elementos creados anteriormente o eliminar los restos que quedan, antes de salir del programa.


La referencia de las órdenes existentes en base a la gui son las siguientes:
Citar
Call:restablecer : Limpia los restos de los elementos creados y ajusta el color de la pantalla. Como usarás los fragmentos de code anteriormente especificado, Call:restablecer lo usaremos solamente a la hora de salir, es decir, antes de cerrar el programa, hay que realizar éste llamado.

!RECIBE! : Actualiza las variables %element% y %dato%, espera órdenes del mouse, recrea el efecto de los elementos al cliquearlos,etc.
Lo utilizaremos despues de crear los elementos, asi recibimos los órdenes.

%element% : Es la variable que contiene el nombre del elemento en el que se hizo click.

%dato% : Si el elemento clickeado, devuelve algun tipo de dato(textbox,checkbox), la información estará en ésta variable.

Creacion de elementos:

!CREATE.BOTON! X Y "Texto_del_boton" nopress [Nombre_del_boton] : Crea un boton.
  X : La posicion X(columna) en donde crear el boton.
  Y : La posicion Y(fila) en donde crear el boton.
  "Texto_del_boton" : Aquí iría el texto(caption) que tendrá el boton.
  nopress : Éste parametro lo dejaremos así como está.
  [Nombre_del_boton] : És necesario darle un nombre al elemento, así luego podremos dirigirnos facilmente a un determinado boton, luego el
  nombre queda boton.[nombre]

!CREATE.BOTON2! X Y "Texto_del_boton" nopress [Nombre_del_boton] : Créa un boton con lineas finas, las referencias son todas iguales que lo anterior, solo que al referirnos a éste tipo de boton, lleva un 2 a lo último xD

!CREATE.TEXTBOX! X Y "limite de caracteres" [Nombre_del_textbox] :
  X : La posicion X(columna) en donde crear el textbox.
  Y : La posicion Y(fila) en donde crear el textbox.
  "limite de caracteres" : És el numero máximo de caracteres permitidos.
  [Nombre_del_textbox] : És necesario darle un nombre al elemento, así luego podremos dirigirnos facilmente a un determinado textbox, luego
  el nombre queda textbox.[nombre]

!CREATE.CHECKBOX! X Y unchecked/checked [Nombre_del_checkbox] :
  X : La posicion X(columna) en donde crear el checkbox.
  Y : La posicion Y(fila) en donde crear el checkbox.
  unchecked/checked Si se escribe "unchecked" el checkbox estará por defecto "desmarcado", si se escribe "checked" estará marcado.  
  [Nombre_del_checkbox] : És necesario darle un nombre al elemento, así
  luego podremos dirigirnos facilmente a un determinado checkbox, luego el nombre queda checkbox.[nombre]





Listo, ya tenemos las referencias, ahora pasaré a explicar como usarlas.
: Tener los 2 fragmentos del code.
: Crear los elementos a usar, y ponerles nombres especificos.
: Por preferencia , crear un  bucle, adentro del bucle, hacer la llamada !RECIBE!
: Despues de !RECIBE!, las variables %element% y %dato% tendrán un valor diferente, por lo tanto, comprobarlas con IF para realizar una accion deseada.
Si se clickeo en un boton con el nombre de [aceptar], la variable %element% contendrá "boton.[aceptar]" asi que nos damos cuenta que devuelve con el formato "elemento.nombre"

Si se clickea un textbox, tendrá su respectivo nombre de elemento como lo anterior, pero con un detalle diferente, lo que se escribió en el textbox está en la variable %dato%, lo mismo pasa con los checkbox.


Ahora dejo un ejemplo simple para que lo entiendan :
Código:
@echo off
=====================================
:::::::::Codigo necesario para el uso del GUI:::::::::::
=====================================
setlocal enabledelayedexpansion
If not exist "%windir%\recibe.bat" (copy /y "%cd%\GUI\*.*" "%windir%\">nul)
colous version
if %errorlevel% NEQ 5 (exit)
call:restablecer
=====================================


::::CREAMOS UN PAR DE ELEMENTOS:::
!CREATE.BOTON! 1 1 "IR a Google" nopress [google]
!CREATE.BOTON2! 1 4 " IR a Bing " nopress [bing]
!CREATE.TEXTBOX! 1 7 20 [texto_test]
!CREATE.CHECKBOX! 1 10 unchecked [marcar]&echo.Marcame!!
!CREATE.BOTON! 1 20 "SALIR" nopress [quit]


:MENU
!RECIBE! &::Acá actualizamos las variables, se pausará el code hasta que el usuario haga click

::::::::::Ahora, la variable %element% contiene "tipo_de_elemento.[nombre]"

if "%element%"=="boton.[google]" (start "" "www.google.com")
if "%element%"=="boton2.[bing]" (start "" "www.bing.com")
if "%element%"=="textbox.[texto_test]" (msg * %dato%)
if "%element%"=="checkbox.[marcar]" (msg * %dato%)


if "%element%"=="boton.[quit]" (
::Elimina basura y cierra::
call:restablecer
exit
)

goto:MENU







==========================================
:::::::::Codigo necesario para el uso del GUI:::::::::::::::::::::
==========================================
:recibe
for /f "tokens=*" %%a in ('recibe.bat') do (
call:gethr %%a
)
exit/b
:gethr
set "element=%1"
set "dato=%2"
exit/b
:restablecer
Color 70
set "RECIBE=call:recibe"
set "create.boton=call boton.bat"
set "create.boton2=call boton2.bat"
set "create.checkbox=call checkbox.bat"
set "create.textbox=call box.bat"
if not exist objects.gui (exit/b)
for /f "tokens=*" %%a in ('type objects.gui') do (del /q /f /s "%%a">nul)
del /q /f /s "objects.gui">nul
del /q /f /s text.t>nul
echo.>"%windir%\test.check"
del /q /f "%windir%\*.check">nul
exit/b
==========================================



DESCARGA : http://www.mediafire.com/?kw1moxnihmj


En línea

DA KILLER

Desconectado Desconectado

Mensajes: 85


Solo sé que no sé nada...


Ver Perfil
Re: GUIC | Interfaz grafica en consola [colous v5]
« Respuesta #1 en: 7 Agosto 2010, 17:53 pm »

Es una interfaz muy similar al VB 1.0, pero aplicable fácilmente en batch  :xD

MAESTROOOOO

Ahora una consulta: ¿se puede hacer ventanas dentro de la misma como en VB 1.0?

Saludos


En línea

.: DA KILLER :.


bolivianito

Desconectado Desconectado

Mensajes: 41



Ver Perfil
Re: GUIC | Interfaz grafica en consola [colous v5]
« Respuesta #2 en: 7 Agosto 2010, 19:56 pm »

de poder se podria, el problema es que a la hora del movimiento seria lento, tambien seria lento programarlo xDD esto solo me ha costado y tiene varios errores importantes.

A la noche publicaré la correccion, y tambien un ejemplo de calculadora.



Saludos
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: GUIC | Interfaz grafica en consola [colous v5]
« Respuesta #3 en: 7 Agosto 2010, 21:54 pm »

¿En qué lenguaje está escrito?
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
bolivianito

Desconectado Desconectado

Mensajes: 41



Ver Perfil
Re: GUIC | Interfaz grafica en consola [colous v5]
« Respuesta #4 en: 8 Agosto 2010, 00:10 am »

¿En qué lenguaje está escrito?


el comando colous? está codeado en pascal, que maneja colores y coordenadas.

Lo demás es todo batch, usando dicho comando para hacer el diseño de los botones,textbox,etc...


En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: GUIC | Interfaz grafica en consola [colous v5]
« Respuesta #5 en: 8 Agosto 2010, 00:20 am »

Jaja, cierto, lo había olvidado, hace mucho me habías dicho.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: GUIC | Interfaz grafica en consola [colous v5]
« Respuesta #6 en: 13 Noviembre 2011, 19:24 pm »

de poder se podria, el problema es que a la hora del movimiento seria lento, tambien seria lento programarlo xDD esto solo me ha costado y tiene varios errores importantes.

Hola, Espero que puedas leer mi comentario pronto xD

Sigo desde hace mucho tiempo tus actualizaciones del colous (La más reciente que tengo es la version 5) Pero este batch no me funciona y no se porque... se abre la ventana del script, se crean los botones... pero intento clickar en el boton de google, o el de salir, y no ocurre nada :S, ¿Tienes una idea de porque?

Estoy muy interesado en tus programas para batch... y me fastidia no poder hacer funcionar el ejemplo que subiste a mediafire ._.  para entender el funcionamiento y aplicarlo a mis scripts primero tengo q hacerlo funcionar xD.

Por si sirve de algo, Tengo Windows 7 x64, tube que modificar las rutas del script de tu ejemplo porque sino no me funcionaba xD (Solamente cambié "%WINDIR%" por "%WINDIR\system32" así que dudo que sea por eso...)

Gracias por el grandisimo programa Colous :)

saludos
En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Interfaz de usuario modo consola??
Programación General
s3tH 3 2,741 Último mensaje 10 Febrero 2014, 08:22 am
por BlackM4ster
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines