Batch Paint v 1.3 - by SCOT Team

Iniciado por SmartGenius, 8 Octubre 2009, 18:15 PM

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

SmartGenius

Quien dijo que no se podia pintar en Batch ???....    =D



@Echo Off
@title Batch Paint
@Mode Con cols=80 lines=25
Setlocal Enabledelayedexpansion

::A Program by S.C.O.T 2009
::Script Coders Oriented Team
::SmartGenius & 3D1

:Init
Cls
If Not Exist Col.vbs (Call :Col_Deb >>Col.vbs)
Set "X=0"
Set "Y=0"
Set "Color=11"
Set "Pincel=Û"
Call :Load

:Table
If "!X!-!Y!"=="43-2" (Exit)
For /l %%s in (33,1,39) do (If "!X!-!Y!"=="%%s-2" (Goto :Save))
If "!X!-!Y!"=="22-2" (Set "Pincel=°")
If "!X!-!Y!"=="24-2" (Set "Pincel=±")
If "!X!-!Y!"=="26-2" (Set "Pincel=²")
If "!X!-!Y!"=="28-2" (Set "Pincel=Û")
If "!X!-!Y!"=="3-4" (Set "Color=01")
If "!X!-!Y!"=="5-4" (Set "Color=02")
If "!X!-!Y!"=="7-4" (Set "Color=03")
If "!X!-!Y!"=="3-6" (Set "Color=04")
If "!X!-!Y!"=="5-6" (Set "Color=05")
If "!X!-!Y!"=="7-6" (Set "Color=06")
If "!X!-!Y!"=="3-8" (Set "Color=07")
If "!X!-!Y!"=="5-8" (Set "Color=08")
If "!X!-!Y!"=="7-8" (Set "Color=09")
If "!X!-!Y!"=="3-10" (Set "Color=0A")
If "!X!-!Y!"=="5-10" (Set "Color=0B")
If "!X!-!Y!"=="7-10" (Set "Color=0C")
If "!X!-!Y!"=="3-12" (Set "Color=0D")
If "!X!-!Y!"=="5-12" (Set "Color=0E")
If "!X!-!Y!"=="7-12" (Set "Color=0F")
If !X! GEQ 12 (
If !Y! GEQ 5 (
If !X! LEQ 41 (
If !Y! LEQ 15 (
cscript //nologo col.vbs "!X!" "!Y!" "%Color%" "%Pincel%"
Set /a "vX=!X!-12"
Set /a "vY=!Y!-5"
Set "X!vX!Y!vY!=!vX! !vY! %Color% %Pincel%"
))))
Call :Mouse
Goto :Table

:Load
Echo.
Echo. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo. ³Colores³ Pinceles   ° ± ² Û   ³Guardar³ ³X³
Echo. ³ÚÄÄÄ¿ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÁÄ´
Echo. ³³Û³Û³Û³³ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ³
Echo. ³ÃÄÅÄÅÄ´³ º                              º ³
Echo. ³³Û³Û³Û³³ º                              º ³
Echo. ³ÃÄÅÄÅÄ´³ º                              º ³
Echo. ³³Û³Û³Û³³ º                              º ³
Echo. ³ÃÄÅÄÅÄ´³ º                              º ³
Echo. ³³Û³Û³Û³³ º                              º ³
Echo. ³ÃÄÅÄÅÄ´³ º                              º ³
Echo. ³³Û³Û³Û³³ º                              º ³
Echo. ³ÀÄÁÄÁÄÙ³ º                              º ³
Echo. ÃÄÄÄÄÄÄÄ´ º                              º ³
Echo. ³ SCOT  ³ º                              º ³
Echo. ³  Team ³ ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ³
Echo. ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
cscript //nologo col.vbs "3" "4" "11" " "
cscript //nologo col.vbs "5" "4" "22" " "
cscript //nologo col.vbs "7" "4" "33" " "
cscript //nologo col.vbs "3" "6" "44" " "
cscript //nologo col.vbs "5" "6" "55" " "
cscript //nologo col.vbs "7" "6" "66" " "
cscript //nologo col.vbs "3" "8" "77" " "
cscript //nologo col.vbs "5" "8" "88" " "
cscript //nologo col.vbs "7" "8" "99" " "
cscript //nologo col.vbs "3" "10" "AA" " "
cscript //nologo col.vbs "5" "10" "BB" " "
cscript //nologo col.vbs "7" "10" "CC" " "
cscript //nologo col.vbs "3" "12" "DD" " "
cscript //nologo col.vbs "5" "12" "EE" " "
cscript //nologo col.vbs "7" "12" "FF" " "
Goto :Eof

:Mouse
Echo e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3>mouse.dat
For %%! in (.g116 .q) do (Echo%%!>> mouse.dat)
For /f "tokens=6-8 delims== " %%a in ('Debug ^< mouse.dat ^| Find /I "X"') do (
Set /a "X=0x%%a"
Set /a "Y=0x%%c")
Goto :Eof

:Save
Cls
Echo.
Set /p "V=  Introduzca un Nombre De Archivo >> "<nul
Set /p "FileName="
If Not Defined Filename Set "FileName=Paint_%Random%"
Call :Template >>%Filename%
For /l %%a in (0,1,29) do (
For /l %%b in (0,1,11) do (
If Defined X%%aY%%b (Echo.Cscript //nologo col.vbs !X%%aY%%b! >>%Filename%)
))
Echo.Pause^>nul >>%Filename%
Echo.>>%Filename%
Call :Col_Deb Echo. "^">>%Filename%
Echo.
Echo. Archivo %Filename% Generado Exitosamente
Ren %Filename% %Filename%.bat >nul
Echo.
Set /p "V=  Presione Cualquier tecla para volver...."<nul
Pause >nul
Goto :Init

:Template
Echo. @Echo off
Echo. @Title Paint Batch - %Filename%
Echo. @Mode Con Cols=80 Lines=25
Echo. @::Hecho Con Batch Paint
Echo. @::S.C.O.T Team 2009
Echo.If Not Exist Col.vbs Call :Col ^>^>col.vbs
Echo.:Draw
Goto :Eof

:Col_Deb
%1:Col
%1Echo.On Error Resume Next
%1Echo.HexColor = Right("0" %~2^& wscript.arguments(2), 2)
%1Echo.Set oExec = CreateObject("WScript.Shell").Exec("%comspec% /c debug ")
%1Echo.
%1Echo.Do Until oExec.StdOut.Read(1) = "-"
%1Echo.  wsh.sleep 10
%1Echo.Loop
%1Echo.
%1Echo.Dim Textos
%1Echo.Textos = Replace(wscript.arguments(3), Chr(195), "Û")
%1Echo.WriteXY wscript.arguments(0), wscript.arguments(1), HexColor, Textos
%1Echo.
%1Echo.oExec.StdIn.Writeline "e0:451 2A"
%1Echo.oExec.StdIn.Writeline "q"
%1Echo.
%1Echo.Sub WriteXY(X, Y, hColor, sText)
%1Echo.Dim ColorText
%1Echo.  For j = 1 to Len(sText) Step 10
%1Echo.    ColorText = "EB800:" %~2^& Hex(Y * 160 + (X + j - 1) * 2)
%1Echo.    For i = j to j + 9
%1Echo.      ColorText = ColorText %~2^& " " %~2^& Hex(Asc(Mid(sText, i, 1))) %~2^& " " %~2^& hColor
%1Echo.      if i = Len(sText) Then Exit For
%1Echo.    Next
%1Echo.    oExec.StdIn.Writeline ColorText
%1Echo.  Next
%1Echo.End Sub
%1Attrib +H Col.vbs
%1Goto :Eof
Goto :Eof


Se Reciben Comentarios Y Sugerencias !  ;)


FranciskoAsdf

Mira em es programa esta super bueno, pero nose porke aparece deformado en mi pantalla D:




copié y pegué el código y salió así...


en todo caso muy buen trabajo FELICITACIONES :)



saludos :)
Asdf debería ser algún tipo de función.

SuperDraco

no tenia ni idea de que se podia hacer algo así con el CMD xDDD!!!
No he vuelto, solo estoy de paso.

Darioxhcx

nooo jajaja
que zarpado smart :xD
muy bueno che.. muy bueno al parecer y poco codigo.
voy a probarlo

saludos

SmartGenius

Sip, la verdad poco codigo pero usando VBS y otras cositas mas, ahora ya lo hemos actualizado y mejorado :P

@Echo Off
@Mode Con cols=80 lines=25
Setlocal Enabledelayedexpansion

::{ A Program by S.C.O.T 2009   }::
::{ Script Coders Oriented Team }::
::{ SmartGenius & 3D1           }::
::{ Thanks to:                  }::
::{ Nax                 }::
::{ Shadow              }::
::{                             }::

Call:PropetiesDefault
:Main
Cls
Echo. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÂÄ¿
Echo. ³ Batch Paint v 1.3 - SCOT Team 2009          ³Nuevo ³Abrir ³Guardar³    ³X³
Echo. ÃÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÁÄ´
Echo. ³Colores³ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ³
Echo. ³ÚÄÂÄÂÄ¿³ º                                                              º ³
Echo. ³³Û³Û³Û³³ º                                                              º ³
Echo. ³ÃÄÅÄÅÄ´³ º                                                              º ³
Echo. ³³Û³Û³Û³³ º                                                              º ³
Echo. ³ÃÄÅÄÅÄ´³ º                                                              º ³
Echo. ³³Û³Û³Û³³ º                                                              º ³
Echo. ³ÃÄÅÄÅÄ´³ º                                                              º ³
Echo. ³³Û³Û³Û³³ º                                                              º ³
Echo. ³ÃÄÅÄÅÄ´³ º                                                              º ³
Echo. ³³Û³Û³Û³³ º                                                              º ³
Echo. ³ÀÄÁÄÁÄÙ³ º                                                              º ³
Echo. ÃÄÄÄÄÄÄÄ´ º                                                              º ³
Echo. ³Pincel ³ º                                                              º ³
Echo. ³       ³ º                                                              º ³
Echo. ³° ± ² Û³ º                                                              º ³
Echo. ÃÄÄÄÄÄÄÄ´ º                                                              º ³
Echo. ³Borra #³ º                                                              º ³
Echo. ³       ³ ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ³
Echo. ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
(Echo.EB800:326 "Û" 11
Echo.EB800:32A "Û" 22
Echo.EB800:32E "Û" 33
Echo.EB800:466 "Û" 44
Echo.EB800:46A "Û" 55
Echo.EB800:46E "Û" 66
Echo.EB800:5A6 "Û" 77
Echo.EB800:5AA "Û" 88
Echo.EB800:5AE "Û" 99
Echo.EB800:6E6 "Û" AA
Echo.EB800:6EA "Û" BB
Echo.EB800:6EE "Û" CC
Echo.EB800:826 "Û" DD
Echo.EB800:82A "Û" EE
Echo.EB800:82E "Û" FF
Echo.Q)|Debug >nul
:Draw
Call:Mouse
title BatchPaint 1.2 - !Hexa! X:!X! Y:!Y!
If !Hexa! EQU 326 ( Set Color=11 )
If !Hexa! EQU 32A ( Call:Color 02 )
If !Hexa! EQU 32E ( Call:Color 03 )
If !Hexa! EQU 466 ( Call:Color 04 )
If !Hexa! EQU 46A ( Call:Color 05 )
If !Hexa! EQU 46E ( Call:Color 06 )
If !Hexa! EQU 5A6 ( Call:Color 07 )
If !Hexa! EQU 5AA ( Call:Color 08 )
If !Hexa! EQU 5AE ( Call:Color 09 )
If !Hexa! EQU 6E6 ( Call:Color 0A )
If !Hexa! EQU 6EA ( Call:Color 0B )
If !Hexa! EQU 6EE ( Call:Color 0C )
If !Hexa! EQU 826 ( Call:Color 0D )
If !Hexa! EQU 82A ( Call:Color 0E )
If !Hexa! EQU 82E ( Call:Color 0F )
If !Hexa! EQU 136 (
Del /Q /A Mouse.dat >nul 2>&1
Del /Q /A TmpData.txt >nul 2>&1
Exit
)
If !Hexa! EQU B44 ( Set Pincel=°)
If !Hexa! EQU B48 ( Set Pincel=±)
If !Hexa! EQU B4C ( Set Pincel=²)
If !Hexa! EQU B50 ( Set Pincel=Û)
If !Hexa! EQU C90 ( Set Pincel=Û&Set Color=00)
If !X! GEQ 62 (
If !Y! GEQ 1 (
If !X! LEQ 68 (
If !Y! LEQ 2 (
Set X=0
Set Y=0
Set Hexa=0
Goto:SaveToFile
))))
If !X! GEQ 55 (
If !Y! GEQ 1 (
If !X! LEQ 60 (
If !Y! LEQ 2 (
Set X=0
Set Y=0
Set Hexa=0
Call:OpenFile
))))
If !X! GEQ 48 (
If !Y! GEQ 1 (
If !X! LEQ 53 (
If !Y! LEQ 2 (
Start Cmd /c %0
Exit /b 0
))))
If !X! GEQ 12 (
If !Y! GEQ 4 (
If !X! LEQ 73 (
If !Y! LEQ 20 (
(Echo.EB800:%hexa% "%Pincel%" %Color%&Echo.Q)|Debug >nul
Echo.EB800:%hexa% "%Pincel%" %Color%>>TmpData.txt
))))
Goto:Draw

:PropetiesDefault
Set Pincel=Û
Set Color=0F
Del /Q /A TmpData.Txt>nul 2>&1
Echo.>TmpData.txt
title BatchPaint 1.2
Goto:Eof

:Color
Set Color=%1
Goto:Eof

:Mouse
Echo e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3>mouse.dat
For %%! in (.g116 .q) do (Echo%%!>> mouse.dat)
For /f "tokens=6-8 delims== " %%a in ('Debug ^< mouse.dat ^| Find /I "X"') do (
Set /a "X=0x%%a"
Set /a "Y=0x%%c"
Set /a "G=!Y! * 160 + (!X! + 1 - 1) * 2
call:d2h !G!
)
Goto :Eof

:d2h
:: Decimal2Hexadecimal
:: Author: lShadowl
set hstr=0123456789ABCDEF&& set int=%1&& set last=
:loop
set/a ths=%int%%%16
call set last=%%hstr:~%ths%,1%%%last%
if /i %int% geq 16 (set /A int=%int%/16
) else (Set Hexa=%last%&& goto:eof)
goto:loop


:OpenFile
Set /p O_File="    Archivo a Abrir:\>"
Find "Batch Paint" %O_File% >nul 2>&1
If Not "%Errorlevel%"=="0" (
msg * El Archivo Seleccionado no es un Dibujo de Batch Paint
) else (
Echo.|Call %O_File%
For /f "tokens=2 Skip=2 delims=." %%f in ('Find "EB800" %O_File%') do (
Echo.%%f>>TmpData.txt
))
Goto :Eof

:SaveToFile
Title Guardando Espere...
Set /p File="     Guardar Como:\>"
Echo.>Save.txt
For /f "Tokens=*" %%S in ('Type TmpData.txt') do (
Echo.%%S>SaveText.txt
Copy /B SaveText.txt + Save.txt SaveF.txt >nul 2>&1
Del /Q /A Save.txt>nul 2>&1
Ren SaveF.txt Save.txt >nul 2>&1
Title Guardando Espere... [Ordenando Archivo %%S]
)
Del /Q /A SaveText.txt>nul 2>&1
(
Echo.@Echo Off
Echo.::Created With Batch Paint
Echo.::SCOT Team 2009
Echo.(
)>SaveFinal.txt
For /f "Tokens=1,*" %%A in ('Type Save.txt') do (
Find /i "Echo.%%A" SaveFinal.txt >nul||Echo.Echo.%%A %%B>>SaveFinal.txt
Title Guardando Espere... [Guardando Cambios %%A]
)
Echo.Echo.Q >>SaveFinal.txt
(Echo.^)^|Debug ^>nul 2^>^&1 &Echo.Pause^>nul&Echo.Goto :Eof)>>SaveFinal.txt
Del /Q /A Save.txt >nul 2>&1
Title Guardando Espere... [Renombrar Archivo]
If ["%File%"] NEQ [""] (
Ren "SaveFinal.txt" "!File!.bat" >nul 2>&1
) ELSE (
Ren "SaveFinal.txt" "DRAW_Image%Random%.bat" >nul 2>&1
)
Title Ok!! - Se ha Terminado de Guardar el Archivo...
Ping -n 2 LocalHost>nul 2>&1
Start Cmd /c %0
Exit /b 0


Espero que le sguste, me comentan cualquier novedad !!  ;D