Colous V5[Comando para mejorar el aspecto de los bat]

miércoles, 22 de septiembre de 2010
Resumen: Colous es un comando principalmente para mejorar el diseño de nuestros bat´s, permitiendo el uso del mouse, posicionarse en una determinada parte de la pantalla, escribir con un determinado color, integrando el uso del teclado pausando el code hasta recibir una tecla, o sin pausarlo.

Sintaxis principal(viejo)
Colous [colorT] [ColorF] [Coordenadas] [Texto]

colorT=Color de texto(colores del 0 al 15)
ColorF=Color de fondo(colores del 0 al 7)
[Coordenadas]=Coordenadas donde escribir el texto.X,Y separando X de la Y con la coma; Para agregar mas coordenadas usar ; , ejemplo : 1,2;8,9

Si se especifica 0,0 de coordenada, se escribirá en X e Y actual, osea, al lado de lo ya escrito.

[Texto]= Es el texto a escribir, se puede incluir caracteres ASCII sin problemas usando $ y el numero siempre tiene que estár en 3 cifras, ejemplo : $001(es la carita) , $065(es la A)


EJEMPLO:
Colous 12 0 1,1 Hola...$001

Texto de color rojo, fondo negro, escribe en la esquina superio izquierda, escribe "Hola...(y la carita)"

Paleta de colores:

Si es un poco dificil de entender, los invito a que visiten el primer post del comando colous, donde explico mas detalladamente las coordenadas, caracteres ascii,etc.
http://foro.portalhacker.net/index.php/topic,96907.0.html


Extras:
  • Colous 0 0 X,Y (No es un extra, pero se puede usar para posicionar el cursor de texto en dichas coordeadas numericas) ejemplo "colous 0 0 1,2" eso posicione en la segunda linea(Y=2)
  • Colous mouse (espera el code hasta que se haga un clic, devuelve "numero_de_boton X Y" estos datos se pueden leer usando FOR, para mas info, leer mas abajo)
  • Colous cursoroff (ocuta el cursor de texto)
  • Colous cursoron (aparece el cursor de texto)
  • Colous GetText[limite] (Es parecido al set /p, pero indicando el limite de caracteres)
    Ejemplo :
    Colous GetText 10, tiene un limite de caracteres 10, para leer el contenido, usar for.
  • Colous sleep [milisegundos] (Hace una pausa de determinados milisegundos(1000=1 segundo))
  • Colous getx (Devuelve en %errorlevel% la posicion X actual(fila actual))
  • Colous gety (Devuelve en %errorlevel% la posicion Y actual(columna actual))
  • Colous delline (Elimina la linea actual(la fila actual))
  • Colous readkey (Pausa el bat hasta que se presione una tecla, y devuelve en %errorlevel% el codigo ASCII)
  • Colous readkey$ (Pausa el bat hasta que se presione una tecla, y devuelve el caracter real(a b c d...) ,para leer el caracter recibido usar for.)
  • Colous keypress (Parecido a readkey, pero no pausa el bat, si se presionó una tecla devuelve su codigo ASCII en %errorlevel%, Usandolo en bucles)
  • Colous keypress$ (sin pausar el code, si se presiono una tecla, devuelve el caracter real(a b c d...) ,para leer el caracter recibido usar for.)
  • Colous version (Devuelve en %errorlevel% la version de colous.)


  • Colous WriteSec "[color]texto[color]texto2[color]..." (Escribe una secuencia de texto por bloques, los bloques se separan por los cambios de colores, los colores se cambian encerrando el numero de color entre corchetes[color].

    Si o SI hay que especificar un color antes de escribir.
    Se pueden escribir codigos ascii usando
    $ y en las 3 cifras indicar el numero : $065 Es la A, $010$013 :Simulo un enter.
    También hay unas pequeñas intrusiones que pueden ser útil, para manipular el cursor de texto:

    []{up} :Mueve el cursor de texto hacia la fila de arriba, pero en la misma columna.
    []{down} :Mueve el cursor de texto hacia la fila de abajo, pero en la misma columna.
    []{right} :Mueve el cursor de texto hacia la columna siguiente, pero en la misma fila.
    []{left} :Mueve el cursor de texto hacia la columna anterior, pero en la misma fila.)

    Ejemplo:

Colous writesec "[12]Esto es de color rojo [15]Y esto es de color blanco"


  • Colous WriteSec /F archivo.txt (Especifica un archivo con contenido de texto en bloques, para crear el texto, tomar como referencia el comando anterior.)


    Ejemplo:
    Archivo.txt contiene lo siguiente:

    [12]Esto es de color rojo [15]Y esto es de color blanco
    [12]Esto esta en la segunda linea, pero con color blanco
    [15]Esto esta en la tercera linea, pero con color rojo

    Y para usarlo, usamos éste mismo parametro:

Colous WriteSec /F archivo.txt
Echo.Ya se ha mostrado el contenido del archivo
pause>nul

  • Colous /F [archivo.txt] (Procesa un archivo del tipo colousDat, que se puede escribir manualmente o usando el paintColous)

    el archivo tiene el siguiente formato:

    colorT
    colorF
    Coordenadas
    Texto
    -
    colorT
    colorF
    Coordenadas
    Texto
    -
    etc...
    Usando las referencias anteriores.

Para mas informacion buscar el primer post de colous.



Leér mouse:
Usando el comando, colous mouse devuelve 3 datos en pantalla:

Boton X Y
boton= 1 si es click izquierdo, 2 si es derecho, 4 si es la ruedita, y varios mas que son combinaciones de botones.
X= Coordenada x donde se cliqueo
Y= Coordenada Y donde se cliqueo

Entonces, para obtener estos 3 datos con for, podemos hacer lo siguiente:

For /F "tokens=1,2,3" %%A in ('colous mouse') do (
set boton=%%A
set X=%%B
set Y=%%C
)

echo se cliqueo en %X% y %Y%
eso deja las coordenadas X e Y en unas variables, esto se puede implementar en una etiqueta, asi cuando queremos llamar al mouse hacemos "call:etiqueta" y listo, define las variables y la podemos usar.





Leér Readkey$:
Este comando, en vez de devolver en errorlevel, devuelve en la pantalla pero su caracter real, es decir, no en numeros, para obtenerlo es facil, necesitamos usar for:

@echo off
For /F %%A in ('colous readkey$') do (
echo Has escrito %%A
)
pause>nul
exit

StartUp-Man




Sencilla utilidad rápida, para el control de la ejecución de softwares malintencionados en el inicio de Windows.
Por ahora, desconozco la compatibilidad con otros sistemas operativos superiores a Windows XP, ya que podrá variar las entradas del registro, modo de ejecución y demás.

Ésta version, sería como un demo,o un simple adelanto, que solo aplica entradas basicas(los run´s del registro)

Pronto tendra, la posibilidad de manejar la ejecucion de softwares que están como componentes, ya que la mayoria de lo worms actuales, se incrustan allí, para dificultar la busqueda de su existencia por parte del usuario.



Descarga: http://www.mediafire.com/?nyyjomeoutm

BMP to HTML [beta]

sábado, 18 de septiembre de 2010


BmpTOhtml es un simple programa para convertir imagenes BMP a texto colorido en un html.

Las imagenes tienen que ser pequeñas, que ronden por los 100x150 por ejemplo.
Para convertir un bmp, hay que arrastrar el archivo hacia el ejecutable "BMP_to_HTML.exe"

Luego te pedirá que ingreses el ancho y alto de la imagen.
Éste generará un archivo Html representando la imagen arrastrada.



Descarga:
http://www.mediafire.com/?adndkda8f2v70yb

Simulacion de Multi hilo, variación de frames , IA basico

viernes, 3 de septiembre de 2010
Bueno, acá un ejemplo basico de como poder simular Multy hilos en batch, que funciona con un contador de frames(mejor dicho, pasos del bucle) para variar la velocidad de algunas cosas.
Se usa las teclas ASDW, y el ejemplo basico de inteligencia artificial, te persigue un caracter :P

pd: se necesita Keypressed.exe, acá pueden descargar la fuente mas el comando.
http://www.mediafire.com/?xugl2a0zsx6xmoe




El code::

Código:
@Echo Off
Setlocal Enabledelayedexpansion
set max_X=40&set max_Y=16&set "line="
Mode Con Cols=%max_X% Lines=%max_Y%
set /a "max_X=%max_X% - 1"&set /a "max_y=%max_y% - 2"
call:Set_var_scr
=================================================
Color F0
set PJ.X=7
set PJ.Y=7
set IA.X=14
set IA.Y=14
set step=0
set step_IA=0
set "key=0"
set "!PJ.X!.!PJ.Y!= "
set "!IA.X!.!IA.Y!= "
call:Draw_scr

:BEGIN
ping -n 1 0.0.0.0>nul
if !step_IA!==4 (set step_IA=0&call:IA)
keypressed.exe
set key=%errorlevel%
if not %key%==0 (call:MOV)
set /a step+=1
set /a step_IA+=1
goto:BEGIN


:MOV
set "!pj.x!.!pj.y!= "
if /i %KEY%==97 (set /a PJ.X-=1)
if /i %KEY%==100 (set /a PJ.X+=1)
if /i %KEY%==119 (set /a PJ.Y-=1)
if /i %KEY%==115 (set /a PJ.Y+=1)
set "!pj.x!.!pj.y!= "
call:Draw_scr
set key=0
exit/b



:IA
if !IA.Y! LSS !PJ.Y! (
set "!IA.X!.!IA.Y!= "&set /a IA.Y+=1
set "!IA.X!.!IA.Y!= "&call:Draw_scr
exit/b
)
if !IA.Y! GTR !PJ.Y! (
set "!IA.X!.!IA.Y!= "&set /a IA.Y-=1
set "!IA.X!.!IA.Y!= "&call:Draw_scr
exit/b
)
if !IA.X! LSS !PJ.X! (
set "!IA.X!.!IA.Y!= "&set /a IA.X+=1
set "!IA.X!.!IA.Y!= "&call:Draw_scr
exit/b
)
if !IA.X! GTR !PJ.X! (
set "!IA.X!.!IA.Y!= "&set /a IA.X-=1
set "!IA.X!.!IA.Y!= "&&call:Draw_scr
exit/b
)
exit/b


===============================================
:::::::::::::Function´s Write screen:::::::::::
:Set_var_scr
for /l %%a in (1,1,%max_X%) do (
for /l %%b in (1,1,%max_y%) do (
set "%%a.%%b= "
)
)
exit/b
:Draw_scr
more /c

Sistema de coordenadas en batch.

Muchos users se complican con este tema en batch, asi que voy a hacer esta publicacion, no para reemplazar los tutoriales existentes ni nada, sino, para ir al grano, mostrando como funciona, la idea principal, de lo que se quiere hacer,etc.

Antes que nada hay que saber por lo menos el minimo de ejes cartesianos, pero acá sufre unos cambios de que seguramente en primaria vimos.
Y 1 2 3 4 5 X..
1....··
2····º(X2,Y2) o abreviandolo en solo numeros (2,2), ya que en las math se usan asi.
3
4
..


El codeo :
Realizar esto en batch no es mas que hacer lo siguiente :
Cls(lo usamos para que la esquina sea(1,1)
Echo %1,1%%2,1%%3,1%%4,1%%5,1%%6,1%
Echo %1,2%%2,2%%3,2%%4,2%%5,2%%6,2%
Echo %1,3%%2,3%%3,3%%4,3%%5,3%%6,3%

Y listo, ahora para definir algun caracter en una determinada coordenada usamos "SET X,Y=Caracter"

Ejemplo: set 2,2=* , eso mostraria en la coordenada X2,Y2 un asterisco.


Así quedaria un ejemplo total:


@echo off
set 2,2=*
set 2,3=*
call:grafica
pause

:grafica
cls
Echo %1,1%%2,1%%3,1%%4,1%%5,1%%6,1%
Echo %1,2%%2,2%%3,2%%4,2%%5,2%%6,2%
Echo %1,3%%2,3%%3,3%%4,3%%5,3%%6,3%
exit/b



Ahora bien, recomiendo leer los tutoriales existentes, que muestran como automatizar el proceso de mostrar todas las variables %1,1%,%2,2%... existentes, que se logra con el uso de for mayoritariamente.



Saludos