FORUM DARKERS

Tecnologia & Informática => Programação => Batch Script => Topic started by: Imoogi on 07 de December , 2008, 05:22:39 PM

Title: Criador de unidade virtual
Post by: Imoogi on 07 de December , 2008, 05:22:39 PM
Criador de unidade virtual, as unidades podem ser personalizadas...


@echo off
mode com cols=68 lines=25
title  Drive Batch Virtual
color 0a
REM Gerenciador de Unidade Virtual Protegida
REM Prote‡Æo Mediante Credenciais, metodo by
REM As Credenciais Permitem Criar uma Unidade Virtual
REM independente para cada Usu rio do PC.

:load
cls
call :credencial
if not exist "%systemdrive%\RECYCLER\%cred%\config.cfg" (goto first) else (goto menu)
exit

:menu
cls
echo.
echo   Bem Vindo %username%
echo.
echo              ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo              ºGerenciador de Unidades Virtu is º
echo              ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo.
echo   ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo   ³1³ ³ Abrir Unidade Virtual ³ ³2³ ³ Encerrar Unidade...  ³
echo   ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo   ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo   ³3³ ³ Criar Unidade Nova... ³ ³4³ ³ Excluir Unidade...   ³
echo   ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo   ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo   ³5³ ³ Proteger Unidade...   ³ ³6³ ³ Extras ^& Ajuda       ³
echo   ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

echo                         ÚÄ¿ ÚÄÄÄÄÄÄÄÄ¿
echo                         ³7³ ³  Sair  ³
echo                         ÀÄÙ ÀÄÄÄÄÄÄÄÄÙ
echo    Digite uma Op‡Æo:
echo.
set /p pin=">> "
if %pin%==1 call :gestao open
if %pin%==2 call :gestao close
if %pin%==3 call :create
if %pin%==4 call :gestao delete
if %pin%==5 call :gestao lock
if %pin%==6 (goto other)
if %pin%==7 (exit) else (goto menu)
exit

:gestao
cls
set funcion=%1
set lin11= &set lin12= &set lin13=
set lin21= &set lin22= &set lin23=
set uni1= &set uni2= &set uni3= &set drive=
for /F "tokens=*" %%n in (%systemdrive%\RECYCLER\%cred%\config.cfg) do (set num=%%n)
call :unis %num%
echo.
echo.
echo  Unidades Virtu is: = %num%
echo.
if %num%==0 echo Ainda nÆo foi existe Nenhuma Unidade Virtual&pause >nul&goto :menu
echo  Escolha uma Unidade Virtual:
echo.
echo  %lin11%   %lin12%   %lin13%
echo  %uni1%   %uni2%   %uni3%
echo  %lin21%   %lin22%   %lin23%
echo.
:segue
set /p Unidade=">> "
call :%funcion% %Unidade%
goto :eof

:unis
set val=%1
for /l %%k in (0,1,3) do (
if exist "%systemdrive%\RECYCLER\%cred%\vd00%%k.tmf" (
for /F "tokens=1" %%l in (%systemdrive%\RECYCLER\%cred%\vd00%%k.tmf) do (
set uni%%k=³%%k³ ³Unidade %%l ³
set lin1%%k=ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄ¿
set lin2%%k=ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÙ
)
)
)
goto :eof

:credencial
for /R "%appdata%\Microsoft\Credentials" %%a in (.) do (echo %%a>%temp%\cred.tmf)
for /F "tokens=7 delims=\" %%b in (%temp%\cred.tmf) do (set cred=%%b)
goto :eof

:first
call :credencial
cls
echo.
echo  TOKEN: %cred%
echo.
echo  Bem Vindo %username%
echo.
echo  Ainda nÆo foi criada Nenhuma Unidade Virtual
echo.
echo  Dever  escolher a Op‡Æo para Criar uma Unidade
echo           Virtual no Menu Principal...
echo.
ping -n 4 0.0.0.0 >nul
echo 0 >%systemdrive%\RECYCLER\%cred%\config.cfg
goto menu
:open
set var=%1
if not exist "%systemdrive%\RECYCLER\%cred%\vd00%var%.tmf" (echo.&echo  A Unidade Escolhida nÆo Existe&echo.&pause&goto menu)
for /F "tokens=*" %%m in (%systemdrive%\RECYCLER\%cred%\vd00%var%.tmf) do (set drive=%%m)
set Unidade=%drive:~0,1%:
if exist "%Unidade%" (echo.&echo A Unidade est  Activa&echo.&pause&start %Unidade%&goto menu)
if exist "%systemdrive%\RECYCLER\%cred%\vd00%var%.cfg" (call :unlock %var%)
set root=%systemdrive%\RECYCLER\%cred%\vd00%var%
cacls "%root%" /e /p Todos:f>nul
subst "%Unidade%" "%root%"
echo  Espere Por Favor...
ping -n 5 0.0.0.0>nul
start %Unidade%
goto :eof

:close
set letra=%1
for /F "tokens=*" %%m in (%systemdrive%\RECYCLER\%cred%\vd00%letra%.tmf) do (set drive=%%m)
set Unidade=%drive:~0,1%:
set root=%systemdrive%\RECYCLER\%cred%\vd00%letra%
subst "%Unidade%" /D
cacls "%root%" /e /d Todos>nul
echo.
echo  Unidade Protegida
echo.
pause
goto :eof

:lock
set virt=%1
if exist "%systemdrive%\RECYCLER\%cred%\vd00%virt%\password.cfg" (call :unlock %virt%)
echo.
echo  Digite uma Senha para Proteger a Unidade
echo.
set /p Senha=">> "
echo %Senha%>"%systemdrive%\RECYCLER\%cred%\vd00%virt%\password.cfg"
echo Protected>"%systemdrive%\RECYCLER\%cred%\vd00%virt%.cfg"
attrib +h "%systemdrive%\RECYCLER\%cred%\vd00%virt%\password.cfg"
echo  A Senha "%Senha%" inserida com exito .
echo.
pause
goto :eof

:unlock
set tip=%1
for /F "tokens=*" %%c in (%systemdrive%\RECYCLER\%cred%\vd00%tip%\password.cfg) do (set word=%%c)
echo.
echo  A Unidade Virtual Est  Protegida.
echo.
echo  Digite o Password:
echo.
set /p pass=">> "
if %pass%==%word% (goto :eof) else (echo.&echo  Senha Incorreta&pause&goto menu)
goto :eof

:help
cls
echo.
echo  Bem Vindo a Ajuda do Programa
echo.
echo  O TOKEN , o identificador de seguran‡a  do Usu rio,
echo  e , diferente para cada versÆo do Windows.
echo.
echo  Use A Unidade Virtual para guardar arquivos e depois
echo  proteger o acesso com o aplicativo inserindo uma senha.
echo.
echo  Poder  criar no m ximo 3 unidades Virtu is por
echo  Usu rio.
echo.
echo  Se desejar, poder  definir uma senha para cada
echo  uma das Unidades Virtu is.
echo.
echo  Igualmente para cada uma poder  contar com varias Op‡Æoes para
echo  persinalizar cada Unidade Virtual.
echo.
pause
goto menu

:create
cls
echo.
echo  Token: %cred%
echo.
echo  Deseja Criar uma Nova Unidade Virtual?? Sim [S]  NÆo [N]
echo.
set /p opc=">> "
if %opc%==n (goto menu)
if %opc%==N (goto menu)
for /F "tokens=*" %%d in (%systemdrive%\RECYCLER\%cred%\config.cfg) do (set num=%%d)
if %num%==3 (echo.&echo  NÆo , permitido m is de 3 Unidades Virtu is&echo.&pause&goto menu)
set /a num=%num%+1
md "%systemdrive%\RECYCLER\%cred%\vd00%num%"
echo %num% >%systemdrive%\RECYCLER\%cred%\config.cfg
echo.
echo  Digite uma Letra para Definir a Nova Unidade:
echo.
set /p new=">> "
echo %new% >%systemdrive%\RECYCLER\%cred%\vd00%num%.tmf
echo.
echo  Unidade Virtual %new% criada.
echo.
pause
goto menu

:delete
cls
set num=%1
echo.
echo  Token: %cred%
echo.
echo  Tem certeza em excluir A Unidade Virtual?? Sim [S]  NÆo [N]
echo.
set /p opc=">> "
if %opc%==n (goto menu)
if %opc%==N (goto menu)
cacls "%systemdrive%\RECYCLER\%cred%\vd00%num%.tmf" /e /p Todos:f>nul
del /f "%systemdrive%\RECYCLER\%cred%\vd00%num%.tmf"
rd /s /q "%systemdrive%\RECYCLER\%cred%\vd00%num%"
for /F "tokens=*" %%h in (%systemdrive%\RECYCLER\%cred%\config.cfg) do (set tot=%%h)
set /a abc=%tot%-1
echo %abc% >%systemdrive%\RECYCLER\%cred%\config.cfg
echo.
echo  Unidade Virtual Excluida.
echo.
pause
goto menu

:other
cls
echo.
echo.
echo  O que Deseja fazer ??
echo.
echo ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³1³ ³ Personalizar A Unidade Virtual ³
echo ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³2³ ³   Ver A Ajuda do Programa      ³
echo ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³3³ ³  Voltar ao Menu Principal...   ³
echo ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
set /p nvc=">> "
if %nvc%==1 goto personalizar
if %nvc%==2 goto help
if %nvc%==3 (goto menu) else (goto other)


:personalizar
cls
echo.
echo  As altera‡äes deverÆo ser feitas com a unidade desprotegida
echo  e serÆo efetivadas na proxima vez que abrir a
echo  Unidade Virtual.
echo.
echo  Escolha uma Op‡Æo:
echo.
echo   ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo   ³1³ ³ Definir Fundo  ³  ³2³ ³Cores das Letras ³
echo   ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo   ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo   ³3³ ³ excluir Fundo..³  ³4³ ³ Voltar ao menu  ³
echo   ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
set /p opc=">> "
if %opc%==1 call :gestao wall
if %opc%==2 call :gestao color
if %opc%==3 call :gestao delwall
if %opc%==4 (goto menu) else (goto personalizar)

:wall
set letra=%1
for /F "tokens=*" %%m in (%systemdrive%\RECYCLER\%cred%\vd00%letra%.tmf) do (set drive=%%m)
set Unidade=%drive:~0,1%:
attrib -h -a "%Unidade%\desktop.ini"
attrib -h -a "%Unidade%\Fundo.cfg"
del /f "%Unidade%\desktop.ini">nul
del /f "%Unidade%\Fundo.cfg">nul
cls
echo.
echo  Selecione ou arrastre para c  uma Imagem
echo  para configurar como imagem de Fundo
echo  o programa est  configurado para esta fun‡Æo
echo.
set /p img=">> "
copy /y %img% "%Unidade%\Fundo.cfg">nul
echo [{BE098140-A513-11D0-A3A4-00C04FD706EC}]>>"%Unidade%\desktop.ini"
echo IconArea_Image=Fundo.cfg >>"%Unidade%\desktop.ini"
echo IconArea_Text=0x000000>>"%Unidade%\desktop.ini"
attrib +h "%Unidade%\desktop.ini">nul
attrib +h "%Unidade%\Fundo.cfg">nul
echo.
echo  Imagem de fundo definida com Exito.
echo.
pause
goto personalizar

:color
set letra=%1
for /F "tokens=*" %%m in (%systemdrive%\RECYCLER\%cred%\vd00%letra%.tmf) do (set drive=%%m)
set Unidade=%drive:~0,1%:
attrib -h -a "%Unidade%\desktop.ini"
del /f "%Unidade%\desktop.ini">nul
cls
echo.
echo.
echo  Aqui ser  definida a cor para
echo  As letras dos nomes nas fontes
echo  dos arquivos e pastas...
echo.
echo   ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿
echo   ³1³ ³   Azul  ³ ³2³ ³ Roxo    ³ ³3³ ³ Amarelo.³
echo   ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÙ
echo   ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿ ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄ¿
echo   ³4³ ³  Pink . ³ ³5³ ³ Preto   ³ ³6³ ³   Sair  ³
echo   ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÙ ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÙ
echo.
echo                    ÚÄ¿ ÚÄÄÄÄÄÄÄÄ¿
echo                    ³7³ ³ Voltar ³
echo                    ÀÄÙ ÀÄÄÄÄÄÄÄÄÙ
echo.
set /p vc=">> "
if %vc%==1 set color=ff0000
if %vc%==2 set color=0000ff
if %vc%==3 set color=00ffff
if %vc%==4 set color=ff00ff
if %vc%==5 set color=000000
if %vc%==6 exit /b
if %vc%==7 (goto menu) else (goto personalizar)
echo [{BE098140-A513-11D0-A3A4-00C04FD706EC}]>>"%Unidade%\desktop.ini"
echo IconArea_Image=Fundo.cfg >>"%Unidade%\desktop.ini"
echo IconArea_Text=0x%color% >>"%Unidade%\desktop.ini"
attrib +h "%Unidade%\desktop.ini"
echo.
echo  Cores das Fontes. OK
echo.
pause
goto personalizar

:delwall
set letra=%1
for /F "tokens=*" %%m in (%systemdrive%\RECYCLER\%cred%\vd00%letra%.tmf) do (set drive=%%m)
set Unidade=%drive:~0,1%:
cls
echo.
echo.
echo  Tem certeza que Deseja Excluir a imagem de Fundo...
echo.
echo   Sim [S]    NÆo [N]
echo.
set /p var=">> "
if %var%==s (attrib -h -a "%Unidade%\desktop.ini" & del /f "%Unidade%\desktop.ini" & echo.&echo  Foi excluido o Fundo com Exito&echo.&pause&goto personalizar)
if %var%==S (attrib -h -a "%Unidade%\desktop.ini" & del /f "%Unidade%\desktop.ini" & echo.&echo  Foi excluido o Fundo com Exito&echo.&pause&goto personalizar)
if %var%==n (echo.&echo  NÆo Foi excluido...&echo.&pause&goto personalizar)
if %var%==N (echo.&echo  NÆo Foi excluido...&echo.&pause&goto personalizar) else (goto main)