Protect Folder v3.0 - peso 592.kb
Un nuevo software para proteger carpetas, evitando visualizar el contenido.
Evita copiar, cortar, eliminar o renombrar, en algunos casos evita hasta moverlas.
Espero os sirva.
![Imagen](http://i.imgur.com/DnvlPay.png)
----------------------------------------------------------------------------------------------------------------------
Visualizar video:
https://www.youtube.com/watch?v=iUsuuIWTpJ4
Dejo el código completo
![:smt002](./images/smilies/002.gif)
Código: Seleccionar todo
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=iconoPROTECTfolder.ico
#AutoIt3Wrapper_Outfile=Pfolder.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Res_Comment=Comentario Vacio
#AutoIt3Wrapper_Res_Description=Protector de carpetas
#AutoIt3Wrapper_Res_Fileversion=3.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=Yasmany Curimilma
#AutoIt3Wrapper_Res_Language=1033
#Au3Stripper_Parameters=/sf /sv
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;~ #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
#include <WinAPI.au3>
#include <String.au3>
#include <Array.au3>
#include <GuiEdit.au3>
#include <WinAPISys.au3>
#include <ColorConstantS.au3>
#include <WinAPIShPath.au3>
#include <WinAPIFiles.au3>
#include <Date.au3>
Opt("GUICloseOnESC", 0)
Opt("GUIOnEventMode", 1)
_Singleton("ProtectFyas1991")
If @OSVersion = "WIN_VISTA" Or @OSVersion = "WIN_XP" Or @OSVersion = "WIN_XPe" Then
MsgBox(16, "Protect Folder", "La versión del sistema operativo no es compatible con el programa.")
Exit
EndIf
Global $specialCharacter = ""
;-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Global $dirRaizPFolder = @AppDataDir & "\" & $specialCharacter & StringReverse("PFolder")
If Not FileExists($dirRaizPFolder) Then
If DirCreate($dirRaizPFolder) Then
FileSetAttrib($dirRaizPFolder & "\", "+RHSN")
If Not FileExists($dirRaizPFolder & "\4465736172726F6C6C61646F72.ini") Then
If IniWrite($dirRaizPFolder & "\4465736172726F6C6C61646F72.ini", "0x50666F6C646572", "0x4465736172726F6C6C61646F72", "0x5961736D616E79") Then ; Desarrollador: Yasmany
Local $dStart = StringToBinary(@YEAR & "/" & @MON & "/" & @MDAY)
IniWrite($dirRaizPFolder & "\4465736172726F6C6C61646F72.ini", "0x50666F6C646572", "0x5374617274", $dStart) ; start: fecha
IniWrite($dirRaizPFolder & "\Desktop.ini", ".ShellClassInfo", "CLSID", "{0C39A5CF-1A7A-40C8-BA74-8900E6DF5FCD}")
IniWrite($dirRaizPFolder & "\Desktop.ini", "SecurityProtectFolder", "PASSW", StringToBinary(DriveGetSerial(@HomeDrive)))
IniWrite($dirRaizPFolder & "\4465736172726F6C6C61646F72.ini", "0x50666F6C646572", "0x73657269616C", "") ; campo serial
DirCreate("\\.\" & $dirRaizPFolder & "\con")
FileSetAttrib($dirRaizPFolder & "\Desktop.ini", "+RASH")
Else
MsgBox(16, "Protect Folder", "No es posible iniciar la aplicación, no se logró fijar la fecha de inicio.")
Exit
EndIf
EndIf
Else
MsgBox(48, "Protect Folder", "No es posible iniciar la aplicación")
Exit
EndIf
EndIf
;-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Global $guiAcercaDe, $guiAyuda
Global $guiPrincipal = GUICreate("Protect Folder", 274, 370, -1, -1, $WS_POPUP, $WS_EX_ACCEPTFILES + $GUI_WS_EX_PARENTDRAG)
GUISetBkColor(0x4d5865, $guiPrincipal)
GUISetOnEvent($GUI_EVENT_RESTORE, "_restoreInterfaz")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "_minimizarInterfaz")
Global $imagen = GUICtrlCreateIcon(@ScriptDir & "\" & StringTrimRight(@ScriptName, 3) & "exe", 99, 7, 2, 35, 35)
Global $lblRelleno = GUICtrlCreateLabel("", 0, 35, 275, 3, $SS_RIGHT + $SS_CENTERIMAGE, $GUI_WS_EX_PARENTDRAG) ;visualiza si está en modo Administrador
GUICtrlSetBkColor($lblRelleno, 0xF5BB0A)
GUICtrlSetColor($lblRelleno, 0x808080)
GUICtrlCreateLabel("Protect Folder", 15, 45, 115, 24, -1, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetColor(-1, 0xF3F3F3)
GUICtrlSetFont(-1, 14, 400, 0, "Candara") ;Impact
Global $lblmsgPrueba
GUICtrlCreateLabel("Evita copiar, cortar, eliminar y renombrar una carpeta.", 15, 79, 250, 55, -1, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetFont(-1, 9, 400, 0, "Candara")
GUICtrlSetColor(-1, 0xF3F3F3)
Global $editDeArrastre = GUICtrlCreateEdit("Arrastre aquí una carpeta", 15, 120, 240, 55, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_READONLY)
GUICtrlSetState($editDeArrastre, $GUI_DROPACCEPTED)
GUICtrlSetColor($editDeArrastre, 0x808080)
GUICtrlSetFont($editDeArrastre, 11, 400, 0, "Candara")
Global $lblAyuda = GUICtrlCreateLabel("Ayuda", 52, 0, 85, 35, $SS_CENTER + $SS_CENTERIMAGE)
_menuColorYcursorUno($lblAyuda)
GUICtrlSetCursor(-1, 0)
GUICtrlSetTip($lblAyuda, "Mostrar panel de ayuda.")
Global $lblAcercaDe = GUICtrlCreateLabel("Acerca de.", 137, 0, 102, 35, $SS_CENTER + $SS_CENTERIMAGE)
_menuColorYcursorUno($lblAcercaDe)
GUICtrlSetCursor(-1, 0)
GUICtrlSetTip($lblAcercaDe, "Información acerca del programa.")
Global $lblCerrar = GUICtrlCreateLabel("X", 239, 0, 35, 20, $SS_CENTER + $SS_CENTERIMAGE, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetOnEvent($lblCerrar, "_cerrarInterfaz")
GUICtrlSetBkColor($lblCerrar, 0xFF3333)
GUICtrlSetColor($lblCerrar, 0xffffff)
GUICtrlSetFont($lblCerrar, 8, 400, 0, "Calibri")
GUICtrlSetCursor($lblCerrar, 0)
GUICtrlSetTip($lblCerrar, "Cerrar")
Global $lblMinimizar = GUICtrlCreateLabel("__", 239, 20, 35, 15, $SS_CENTER + $SS_CENTERIMAGE, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetOnEvent($lblMinimizar, "_minimizarInterfaz")
GUICtrlSetTip($lblMinimizar, "Minimizar")
_menuColorYcursorUno($lblMinimizar)
GUICtrlSetFont($lblMinimizar, 8, 400, 0, "Arial Black")
GUICtrlSetCursor($lblMinimizar, 0)
Global $lblSeguridad = GUICtrlCreateLabel("S e g u r i d a d", 16, 185, 75, 17)
GUICtrlSetColor(-1, 0xF3F3F3)
Global $grupoUnico = GUICtrlCreateGroup("", 16, 195, 241, 120)
Global $lblPassUno = GUICtrlCreateLabel("Escriba una contraseña", 24, 213, 116, 17)
GUICtrlSetColor(-1, 0xF3F3F3)
Global $inpPassUno = GUICtrlCreateInput("", 24, 230, 225, 25, BitOR($GUI_SS_DEFAULT_INPUT, $ES_PASSWORD))
GUICtrlSetFont($inpPassUno, 10, 400, 0, "Candara")
GUICtrlSetLimit($inpPassUno, 15)
GUICtrlSetBkColor(-1, 0xF3F3F3)
If _WinAPI_GetVersion() >= 6.0 Then
GUICtrlSetState($lblPassUno, $GUI_HIDE)
_GUICtrlEdit_SetCueBanner($inpPassUno, "Escriba una contraseña")
ControlMove($guiPrincipal, "", $lblSeguridad, 16, 190, 75, 17)
ControlMove($guiPrincipal, "", $inpPassUno, 24, 225, 225, 25)
ControlMove($guiPrincipal, "", $grupoUnico, 16, 205, 241, 100)
EndIf
Global $lblPassDos = GUICtrlCreateLabel("Repita su contraseña", 24, 260, 105, 17)
GUICtrlSetColor(-1, 0xF3F3F3)
Global $inpPassDos = GUICtrlCreateInput("", 24, 277, 225, 25, BitOR($GUI_SS_DEFAULT_INPUT, $ES_PASSWORD))
GUICtrlSetFont($inpPassDos, 10, 400, 0, "Candara")
GUICtrlSetLimit($inpPassDos, 15)
GUICtrlSetBkColor($inpPassDos, 0xF3F3F3)
If _WinAPI_GetVersion() >= 6.0 Then
GUICtrlSetState($lblPassDos, $GUI_HIDE)
_GUICtrlEdit_SetCueBanner($inpPassDos, "Repita su contraseña")
ControlMove($guiPrincipal, "", $inpPassDos, 24, 267, 225, 25)
EndIf
Global $lblPassQuitar = GUICtrlCreateLabel("Escriba su contraseña", 85, 220, 116, 25)
GUICtrlSetColor($lblPassQuitar, 0xF3F3F3)
Global $inpPassQuitar = GUICtrlCreateInput("", 65, 242, 146, 25, BitOR($GUI_SS_DEFAULT_INPUT, $ES_PASSWORD + $SS_CENTER + $SS_CENTERIMAGE))
GUICtrlSetLimit($inpPassQuitar, 15)
GUICtrlSetColor($inpPassQuitar, 0x4d5865) ; verde: 0X577e2a
GUICtrlSetFont($inpPassQuitar, 10, 400, 0, "Arial Black")
Global $btnQuitar = GUICtrlCreateButton("Quitar Protección", 72, 320, 131, 40)
GUICtrlSetState($btnQuitar, $GUI_DISABLE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
;~ GUICtrlSetFont($grupoUnico, 10, 400, 0, "Arial")
Global $btnProteger = GUICtrlCreateButton("Proteger", 72, 320, 131, 40)
GUICtrlSetState($btnProteger, $GUI_DEFBUTTON)
GUICtrlSetFont(-1, 10, -1, 0, "Arial")
Global $lblMsg = GUICtrlCreateLabel("", 35, 320, 200, 40, $SS_CENTER + $SS_CENTERIMAGE)
GUICtrlSetFont($lblMsg, 14, 800, 0, "Candara")
GUICtrlSetColor($lblMsg, 0xF3F3F3)
GUICtrlSetState($lblMsg, $GUI_HIDE)
Global $inpSerial, $btnActivar, $lblMsgActivacion
Global $Form1_AccelTable[1][2] = [["{F1}", $lblAyuda]]
GUISetAccelerators($Form1_AccelTable)
_cargarEventos()
GUICtrlSetState($lblPassQuitar, $GUI_HIDE)
GUICtrlSetState($inpPassQuitar, $GUI_HIDE)
GUICtrlSetState($btnQuitar, $GUI_HIDE)
GUICtrlSetState($editDeArrastre, $GUI_FOCUS)
Local $readIni = IniRead($dirRaizPFolder & "\4465736172726F6C6C61646F72.ini", "0x50666F6C646572", "0x5374617274", "ymct1991")
Local $convToString, $iDateCalc
If Not FileExists($dirRaizPFolder & "\Finished") Then
If $readIni <> "ymct1991" Then
$convToString = BinaryToString($readIni)
$iDateCalc = _DateDiff('d', $convToString & " 00:00:00", _NowCalc())
If $iDateCalc <> "0" And $iDateCalc <> "1" And $iDateCalc <> "2" And $iDateCalc <> "3" And $iDateCalc <> "4" _
And $iDateCalc <> "5" And $iDateCalc <> "6" And $iDateCalc <> "7" Then
ConsoleWrite($convToString & @CRLF & $iDateCalc & @CRLF)
DirCreate($dirRaizPFolder & "\Finished")
ConsoleWrite(@CRLF & "Periodo de prueba finalizado." & @CRLF)
EndIf
Else
ConsoleWrite("Error" & @CRLF)
EndIf
EndIf
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "_WM_COMMAND")
While 1
Sleep(100)
WEnd
Func _cargarEventos()
GUISetOnEvent($GUI_EVENT_CLOSE, "_cerrarInterfaz")
GUICtrlSetOnEvent($lblAyuda, "_ayuda")
GUICtrlSetOnEvent($lblAcercaDe, "_acercaDe")
GUICtrlSetOnEvent($btnProteger, "_Proteger")
GUICtrlSetOnEvent($btnQuitar, "_DesProteger")
GUISetOnEvent($GUI_EVENT_DROPPED, "_eventoArrastrar")
EndFunc ;==>_cargarEventos
Func sVibrar($hWnd, $idControl) ; simulación de vibrar
;--------------- INFO SIZE BUTTON ----------------------------
Local $cPos = ControlGetPos($hWnd, "", $idControl)
ConsoleWrite("Position: " & $cPos[0] & ", " & $cPos[1] & @CRLF)
ConsoleWrite("Size: " & $cPos[2] & ", " & $cPos[3] & @CRLF & @CRLF)
;--------------- SHAKE --------------------------------------
For $i = 0 To 7
ControlMove($hWnd, "", $idControl, $cPos[0] - 4, $cPos[1])
Sleep(20)
ControlMove($hWnd, "", $idControl, $cPos[0] + 4, $cPos[1])
Sleep(20)
Next
ControlMove($hWnd, "", $idControl, $cPos[0], $cPos[1])
EndFunc ;==>sVibrar
Func buttonAnimation($hWnd, $idControl, $intro) ;simulacion de Animacion de Entrada
Local $cPosDos
;--------------- INFO SIZE BUTTON ----------------------------
Local $cPos = ControlGetPos($hWnd, "", $idControl)
;~ ConsoleWrite("Position: " & $cPos[0] & ", " & $cPos[1] & @CRLF)
;~ ConsoleWrite("Size: " & $cPos[2] & ", " & $cPos[3] & @CRLF & @CRLF)
Local $aClientSize = WinGetClientSize($hWnd) ; toma referencia al tamaño de la ventana
;~ ConsoleWrite("SIZE WINDOWS" & @CRLF)
;~ ConsoleWrite("Width: " & $aClientSize[0] & @CRLF & "Height: " & $aClientSize[1] & @CRLF & @CRLF)
;--------------- INTRO ---------------------------------------
If $intro = "right" Then
ControlMove($hWnd, "", $idControl, $aClientSize[0], $cPos[1])
GUICtrlSetState($idControl, $GUI_SHOW)
$cPosDos = ControlGetPos($hWnd, "", $idControl)
For $i = $cPosDos[0] To $cPos[0] Step -10 ; $cPos[0] es la posicion X que se obtuvo primero
Sleep(10)
ControlMove($hWnd, "", $idControl, $i, $cPos[1])
Next
ElseIf $intro = "down" Then
ControlMove($hWnd, "", $idControl, $cPos[0], $aClientSize[1])
GUICtrlSetState($idControl, $GUI_SHOW)
$cPosDos = ControlGetPos($hWnd, "", $idControl)
For $i = $cPosDos[1] To $cPos[1] Step -10
Sleep(25)
ControlMove($hWnd, "", $idControl, $cPosDos[0], $i)
Next
ElseIf $intro = "down-out" Then ; cuando el efecto es de salida se debe restablecer en HIDE a la posicion original
For $i = $cPos[1] To $aClientSize[1] Step 5
Sleep(10)
ControlMove($hWnd, "", $idControl, $cPos[0], $i)
Next
GUICtrlSetState($idControl, $GUI_HIDE) ; lo oculta y
ControlMove($hWnd, "", $idControl, $cPos[0], $cPos[1]) ; restablece a la posición para el nuevo efecto que se desee aplicar
EndIf
EndFunc ;==>buttonAnimation
Func _eventoArrastrar()
GUICtrlSetData($editDeArrastre, "")
Local $direccion = @GUI_DragFile
Local $aArray1 = _StringBetween($direccion & '\', '\', '\')
If DriveGetType(StringLeft($direccion, 2)) = "FIXED" And DriveGetType(StringLeft($direccion, 2), 3) <> "USB" Then
Local $resultUno = StringInStr($direccion, "Archivos de Programa")
Local $resultDos = StringInStr($direccion, "System Volume Information")
Local $resultTres = StringInStr($direccion, "Recycle")
Local $resultCuatro = StringInStr($direccion, "Program Files")
Local $resultCinco = StringInStr($direccion, "PerfLogs")
Local $resultSeis = StringInStr($direccion, "MSOCache")
Local $resultSiete = StringInStr($direccion, "ProgramData")
If $resultUno = 0 And $resultDos = 0 And $resultTres = 0 And $resultCuatro = 0 And $resultCinco = 0 And $resultSeis = 0 And $resultSiete = 0 Then
If StringLen($direccion) <> 3 And StringRight($direccion, 2) <> ":\" Then
If DirGetSize($direccion) = "-1" And $aArray1[0] <> "Windows" Then
GUICtrlSetData($editDeArrastre, "SELECCIÓN NO PERMITIDA")
GUICtrlSetState($editDeArrastre, $GUI_FOCUS)
Else
If $aArray1[0] = "Windows" Then
GUICtrlSetData($editDeArrastre, "SELECCIÓN NO PERMITIDA, La dirección completa contiene" & _
" una carpeta del sistema. >> " & $aArray1[0])
Else
If _WinAPI_PathIsDirectoryEmpty($direccion) Then
GUICtrlSetData($editDeArrastre, "SELECCIÓN NO PERMITIDA, El directorio está vacío.")
Else
If IniRead($direccion & '\Desktop.ini', "SecurityProtectFolder", "PASSW", "ymct1991") = "ymct1991" Then
GUICtrlSetState($lblPassQuitar, $GUI_HIDE)
GUICtrlSetState($inpPassQuitar, $GUI_HIDE)
GUICtrlSetData($inpPassQuitar, "")
GUICtrlSetState($btnQuitar, $GUI_HIDE)
GUICtrlSetState($btnQuitar, $GUI_DISABLE)
_estadoBotonesPrincipales($GUI_SHOW)
GUICtrlSetData($editDeArrastre, "")
GUICtrlSetData($editDeArrastre, $direccion)
GUICtrlSetState($inpPassUno, $GUI_FOCUS)
Else ; SI TIENE CONTRASENIA
_estadoBotonesPrincipales($GUI_HIDE)
GUICtrlSetState($btnQuitar, $GUI_DISABLE)
GUICtrlSetState($lblPassQuitar, $GUI_SHOW)
GUICtrlSetState($inpPassQuitar, $GUI_SHOW)
GUICtrlSetState($btnQuitar, $GUI_SHOW)
GUICtrlSetData($editDeArrastre, "")
GUICtrlSetData($editDeArrastre, $direccion)
GUICtrlSetState($inpPassQuitar, $GUI_FOCUS)
EndIf
EndIf
EndIf
EndIf
Else
GUICtrlSetData($editDeArrastre, "SELECCIÓN NO PERMITIDA")
GUICtrlSetState($editDeArrastre, $GUI_FOCUS)
EndIf
Else
GUICtrlSetData($editDeArrastre, "SELECCIÓN NO PERMITIDA, En la dirección consta una carpeta que es parte del sistema.")
GUICtrlSetState($editDeArrastre, $GUI_FOCUS)
EndIf
Else
GUICtrlSetData($editDeArrastre, "SELECCIÓN NO PERMITIDA, La carpeta está contenida en una unidad extraible.")
GUICtrlSetState($editDeArrastre, $GUI_FOCUS)
EndIf
EndFunc ;==>_eventoArrastrar
Func _aplicarProteccion()
Local $path = GUICtrlRead($editDeArrastre)
Local $pathOnly, $NameFolder, $pathOnlyAddSlash, $NewPath
If StringRight(StringLeft($path, 2), 1) <> ":" Then
sVibrar($guiPrincipal, $editDeArrastre)
Else
If _leer($inpPassUno) = "" And _leer($inpPassDos) = "" Then
If _WinAPI_GetVersion() < 6.0 Then
sVibrar($guiPrincipal, $lblPassUno)
Else
sVibrar($guiPrincipal, $inpPassUno)
EndIf
GUICtrlSetState($inpPassUno, $GUI_FOCUS)
ElseIf _leer($inpPassUno) <> "" And _leer($inpPassDos) = "" Then
ConsoleWrite("ENTREEEEEEEEEEE" & @CRLF)
If _WinAPI_GetVersion() < 6.0 Then
sVibrar($guiPrincipal, $lblPassDos)
Else
sVibrar($guiPrincipal, $inpPassDos)
EndIf
GUICtrlSetState($lblPassDos, $GUI_FOCUS)
ElseIf _leer($inpPassDos) And _leer($inpPassUno) = "" Then
If _WinAPI_GetVersion() < 6.0 Then
sVibrar($guiPrincipal, $lblPassUno)
Else
sVibrar($guiPrincipal, $inpPassUno)
EndIf
GUICtrlSetState($inpPassUno, $GUI_FOCUS)
ElseIf _leer($inpPassUno) <> _leer($inpPassDos) Then
GUICtrlSetData($inpPassUno, "")
GUICtrlSetData($inpPassDos, "")
If _WinAPI_GetVersion() < 6.0 Then
GUICtrlSetState($lblPassUno, $GUI_HIDE)
GUICtrlSetState($lblPassDos, $GUI_HIDE)
Sleep(500)
EndIf
If _WinAPI_GetVersion() < 6.0 Then
GUICtrlSetState($lblPassUno, $GUI_SHOW)
buttonAnimation($guiPrincipal, $lblPassUno, "right")
Sleep(1000)
Else
sVibrar($guiPrincipal, $inpPassUno)
EndIf
GUICtrlSetState($inpPassUno, $GUI_FOCUS)
If _WinAPI_GetVersion() < 6.0 Then
GUICtrlSetState($lblPassDos, $GUI_SHOW)
buttonAnimation($guiPrincipal, $lblPassDos, "right")
Else
sVibrar($guiPrincipal, $inpPassDos)
EndIf
GUICtrlSetState($inpPassDos, $GUI_FOCUS)
Sleep(500)
GUICtrlSetState($inpPassUno, $GUI_FOCUS)
ElseIf _leer($inpPassUno) = _leer($inpPassDos) Then
Local $ini = $path & "\Desktop.ini"
If FileExists($ini) = 1 Then
FileSetAttrib($ini, "-RASH")
FileDelete($ini)
EndIf
_mensaje("Procesando...", $btnProteger)
If IniWrite($ini, ".ShellClassInfo", "CLSID", "{0C39A5CF-1A7A-40C8-BA74-8900E6DF5FCD}") Then
If IniWrite($ini, "SecurityProtectFolder", "PASSW", StringToBinary(GUICtrlRead($inpPassUno))) Then
If DirCreate($path & "\000") Then
FileSetAttrib($path & "\000", "+RASH")
If DirCreate("\\.\" & $path & "\000\con") Then
If FileSetAttrib($ini, "+RASH") Then
;~ ConsoleWrite($path & @CRLF & $NewPath & @CRLF)
If FileSetAttrib($path & "\", "+RSN") Then
Sleep(500)
$pathOnly = _WinAPI_PathRemoveFileSpec($path)
$NameFolder = _WinAPI_PathFindFileName($path)
$pathOnlyAddSlash = _WinAPI_PathAddBackslash($pathOnly)
$NewPath = $pathOnlyAddSlash & $specialCharacter & StringReverse($NameFolder)
If DirMove($path, $NewPath) Then
ProcessClose("explorer.exe")
;~ Sleep(2000)
ShellExecute(_WinAPI_PathRemoveFileSpec($NewPath))
GUICtrlSetData($editDeArrastre, "Arrastre aquí una carpeta")
GUICtrlSetData($inpPassUno, "")
GUICtrlSetData($inpPassDos, "")
_mensaje("Carpeta protegida!", $btnProteger)
If Not ProcessExists("explorer.exe") Then ShellExecute("explorer.exe")
GUICtrlSetState($btnProteger, $GUI_ENABLE)
Else
FileSetAttrib($path & "\000", "-RASH")
FileSetAttrib($ini & "\", "-RASH")
FileDelete($ini)
DirRemove("\\.\" & $path & "\000\con")
DirRemove($path & "\000")
_mensaje("ERROR...4", $btnProteger)
EndIf
Else
FileSetAttrib($path & "\000", "-RASH")
FileSetAttrib($ini & "\", "-RASH")
FileDelete($ini)
DirRemove("\\.\" & $path & "\000\con")
DirRemove($path & "\000")
_mensaje("ERROR...5", $btnProteger)
EndIf
Else
FileSetAttrib($path & "\000", "-RASH")
FileSetAttrib($ini & "\", "-RASH")
FileDelete($ini)
DirRemove("\\.\" & $path & "\000\con")
DirRemove($path & "\000")
_mensaje("ERROR...3", $btnProteger)
EndIf
Else
FileSetAttrib($path & "\000", "-RASH")
FileSetAttrib($ini & "\", "-RASH")
FileDelete($ini)
DirRemove($path & "\000")
_mensaje("ERROR...2", $btnProteger)
EndIf
Else
FileSetAttrib($ini & "\", "-RASH")
FileDelete($ini)
_mensaje("ERROR...1.5", $btnProteger)
EndIf
Else
FileSetAttrib($ini & "\", "-RASH")
FileDelete($ini)
_mensaje("ERROR...1", $btnProteger)
EndIf
EndIf
EndIf
EndIf
EndFunc ;==>_aplicarProteccion
Func _Proteger()
Local $readIni = IniRead($dirRaizPFolder & "\4465736172726F6C6C61646F72.ini", "0x50666F6C646572", "0x5374617274", "ymct1991")
Local $readSerial = IniRead($dirRaizPFolder & "\4465736172726F6C6C61646F72.ini", "0x50666F6C646572", "0x73657269616C", "ymct1991")
If $readSerial = StringToBinary(DriveGetSerial(@HomeDrive)) Then
_aplicarProteccion()
ElseIf $readSerial <> "ymct1991" Then
If Not FileExists($dirRaizPFolder & "\Finished") Then
If $readIni <> "ymct1991" Then
$convToString = BinaryToString($readIni)
$iDateCalc = _DateDiff('d', $convToString & " 00:00:00", _NowCalc())
If $iDateCalc <> "0" And $iDateCalc <> "1" And $iDateCalc <> "2" And $iDateCalc <> "3" And $iDateCalc <> "4" _
And $iDateCalc <> "5" And $iDateCalc <> "6" And $iDateCalc <> "7" Then
If Not WinExists("Ayuda Protect Folder") Then _ayuda()
Sleep(500)
_activar()
Else
_aplicarProteccion()
EndIf
EndIf
Else
If Not WinExists("Ayuda Protect Folder") Then _ayuda()
Sleep(500)
_activar()
EndIf
EndIf
EndFunc ;==>_Proteger
Func _mensaje($texto, $idControl)
buttonAnimation($guiPrincipal, $idControl, "down-out")
GUICtrlSetState($idControl, $GUI_HIDE)
GUICtrlSetData($lblMsg, $texto)
If GUICtrlRead($lblMsg) <> "Carpeta protegida!" And GUICtrlRead($lblMsg) <> "Carpeta desbloqueada." Then
buttonAnimation($guiPrincipal, $lblMsg, "down")
EndIf
If GUICtrlRead($lblMsg) <> "Procesando..." And $texto <> "Procesando..." Then
Sleep(2000)
;~ If GUICtrlRead($lblMsg) = "Carpeta protegida!" Or GUICtrlRead($lblMsg) = "Carpeta desbloqueada." Then
buttonAnimation($guiPrincipal, $lblMsg, "down-out")
ConsoleWrite("REPETIR" & @CRLF)
GUICtrlSetState($lblMsg, $GUI_HIDE)
;~ EndIf
If GUICtrlRead($lblMsg) = "Carpeta desbloqueada." Then
buttonAnimation($guiPrincipal, $btnProteger, "down")
Else
buttonAnimation($guiPrincipal, $idControl, "down")
EndIf
EndIf
$texto = ""
EndFunc ;==>_mensaje
Func _DesProteger()
Local $path = GUICtrlRead($editDeArrastre)
Local $passIni = IniRead($path & '\Desktop.ini', "SecurityProtectFolder", "PASSW", "ymct1991")
Local $pathOnly, $pathOnlyAddSlash, $NewPath, $originalName
If BinaryToString($passIni) = GUICtrlRead($inpPassQuitar) Then
GUICtrlSetState($btnQuitar, $GUI_DISABLE)
_mensaje("Procesando...", $btnProteger)
Sleep(2000)
If FileSetAttrib($path, "-RSN") Then
If FileSetAttrib($path & '\Desktop.ini', "-RASH") Then
If FileDelete($path & '\Desktop.ini') Then
If DirRemove("\\.\" & $path & "\000\con") Then
FileSetAttrib($path & "\000", "-RASH")
Sleep(100)
DirRemove($path & "\000")
If StringInStr($path, $specialCharacter) Then
$originalName = StringReverse(StringTrimLeft(_WinAPI_PathFindFileName($path), 1))
$pathOnly = _WinAPI_PathRemoveFileSpec($path)
$pathOnlyAddSlash = _WinAPI_PathAddBackslash($pathOnly)
$NewPath = $pathOnlyAddSlash & $originalName
DirMove($path, _WinAPI_PathYetAnotherMakeUniqueName($NewPath))
EndIf
ProcessClose("explorer.exe")
_mensaje("Carpeta desbloqueada.", $btnQuitar)
GUICtrlSetState($lblPassQuitar, $GUI_HIDE)
GUICtrlSetState($inpPassQuitar, $GUI_HIDE)
GUICtrlSetData($inpPassQuitar, "")
GUICtrlSetState($btnQuitar, $GUI_HIDE)
GUICtrlSetState($btnQuitar, $GUI_DISABLE)
_estadoBotonesPrincipales($GUI_SHOW)
Sleep(2000)
If Not ProcessExists("explorer.exe") Then ShellExecute("explorer.exe")
ShellExecute(_WinAPI_PathRemoveFileSpec($path))
Else
FileSetAttrib($path & '\Desktop.ini', "+RASH")
FileSetAttrib($path, "+RSN")
_mensaje("ERROR...d04", $btnQuitar)
EndIf
Else
FileSetAttrib($path & '\Desktop.ini', "+RASH")
FileSetAttrib($path, "+RSN")
_mensaje("ERROR...d03", $btnQuitar)
EndIf
Else
FileSetAttrib($path, "+RSN")
_mensaje("ERROR...d02", $btnQuitar)
EndIf
Else
_mensaje("ERROR...d01", $btnQuitar)
EndIf
Else
GUICtrlSetData($inpPassQuitar, "")
sVibrar($guiPrincipal, $inpPassQuitar)
GUICtrlSetState($inpPassQuitar, $GUI_FOCUS)
EndIf
EndFunc ;==>_DesProteger
Func _estadoBotonesPrincipales($state)
GUICtrlSetState($btnProteger, $state)
GUICtrlSetState($inpPassUno, $state)
GUICtrlSetState($inpPassDos, $state)
GUICtrlSetData($inpPassUno, "")
GUICtrlSetData($inpPassDos, "")
If (_WinAPI_GetVersion() >= 6.0 And $state = 18) Or (_WinAPI_GetVersion() >= 6.0 And $state = 32) Then
ElseIf (_WinAPI_GetVersion() < 6.0 And $state = 18) Or (_WinAPI_GetVersion() < 6.0 And $state = 32) Then
GUICtrlSetState($lblPassDos, $state)
GUICtrlSetState($lblPassUno, $state)
EndIf
EndFunc ;==>_estadoBotonesPrincipales
Func _cerrarInterfaz()
Exit
EndFunc ;==>_cerrarInterfaz
Func _minimizarInterfaz()
GUISetState(@SW_MINIMIZE, $guiPrincipal)
EndFunc ;==>_minimizarInterfaz
Func _restoreInterfaz()
GUISetState(@SW_RESTORE, $guiPrincipal)
EndFunc ;==>_restoreInterfaz
Func _ayuda()
GUICtrlSetTip($lblAyuda, "Quitar panel de ayuda")
_menuColorYcursorDos($lblAyuda)
If WinExists("Ayuda Protect Folder") Then
_regresarInterfaz()
Else
$guiAyuda = GUICreate('Ayuda Protect Folder', 230, 295, -228, 42, $WS_POPUP, $WS_EX_MDICHILD + $WS_EX_TOOLWINDOW, $guiPrincipal)
GUISetBkColor(0xf8f8f9)
GUICtrlCreateLabel("Ayuda", 0, 0, 230, 30, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetColor(-1, 0xffffff)
GUICtrlSetBkColor(-1, 0x38424d)
GUICtrlSetFont(-1, 10, 400, -1, "Arial")
$lblMsgActivacion = GUICtrlCreateLabel("Activado", 15, 45, 150, 20) ;Producto Activado.!
GUICtrlSetState($lblMsgActivacion, $GUI_HIDE)
GUICtrlSetColor($lblMsgActivacion, 0x38424d)
GUICtrlSetFont($lblMsgActivacion, 9, 400, 0, "Candara")
$inpSerial = GUICtrlCreateInput("", 15, 44, 140, 20)
GUICtrlSetData($inpSerial, DriveGetSerial(@HomeDrive))
$btnActivar = GUICtrlCreateButton("Activar", 155, 43, 65, 22)
GUICtrlSetOnEvent($btnActivar, "_activar")
GUICtrlCreateLabel(' - Proteger Carpeta', 15, 76, 205, 20, $SS_CENTERIMAGE)
GUICtrlSetColor(-1, 0xffffff)
GUICtrlSetBkColor(-1, 0x4d5865)
GUICtrlCreateLabel('1.- Arrastre una carpeta hacia el programa.' & @CRLF & @CRLF & _
'2.- Cree una contraseña.' & @CRLF & @CRLF & _
'3.- Haga Clic en el botón ' & '[Proteger]', 15, 105, 205, 80)
GUICtrlCreateLabel(' - Quitar protección de carpeta', 15, 185, 205, 20, $SS_CENTERIMAGE)
GUICtrlSetColor(-1, 0xffffff)
GUICtrlSetBkColor(-1, 0x4d5865)
GUICtrlCreateLabel('• Arrastre la carpeta protegida hacia el programa.' & @CRLF & @CRLF & _
'• Escriba su contraseña y clic en quitar protección.', 15, 215, 185, 93)
Local $readIni = IniRead($dirRaizPFolder & "\4465736172726F6C6C61646F72.ini", "0x50666F6C646572", "0x5374617274", "ymct1991")
Local $readSerial = IniRead($dirRaizPFolder & "\4465736172726F6C6C61646F72.ini", "0x50666F6C646572", "0x73657269616C", "ymct1991")
If $readSerial == StringToBinary(DriveGetSerial(@HomeDrive)) Then
GUICtrlSetState($inpSerial, $GUI_HIDE)
GUICtrlSetState($btnActivar, $GUI_HIDE)
GUICtrlSetData($lblMsgActivacion, "Producto activado.!")
GUICtrlSetState($lblMsgActivacion, $GUI_SHOW)
ElseIf $readSerial <> "ymct1991" Then
If Not FileExists($dirRaizPFolder & "\Finished") Then
If $readIni <> "ymct1991" Then
$convToString = BinaryToString($readIni)
$iDateCalc = _DateDiff('d', $convToString & " 00:00:00", _NowCalc())
If $iDateCalc <> "0" And $iDateCalc <> "1" And $iDateCalc <> "2" And $iDateCalc <> "3" And $iDateCalc <> "4" _
And $iDateCalc <> "5" And $iDateCalc <> "6" And $iDateCalc <> "7" Then
sVibrar($guiAyuda, $inpSerial)
sVibrar($guiAyuda, $btnActivar)
GUICtrlSetState($btnActivar, $GUI_FOCUS)
EndIf
Else
ConsoleWrite("Error" & @CRLF)
EndIf
Else
sVibrar($guiAyuda, $inpSerial)
sVibrar($guiAyuda, $btnActivar)
GUICtrlSetState($btnActivar, $GUI_FOCUS)
EndIf
Else
MsgBox(48, "Protect Folder", "Error PF01HLP")
EndIf
GUISetState(@SW_SHOW, $guiAyuda)
WinActivate("Protect Folder")
Do
Until $GUI_EVENT_CLOSE
EndIf
EndFunc ;==>_ayuda
Func _activar()
Local $getSerial = GUICtrlRead($inpSerial) ;0x333734313031343237
Local $serial = StringToBinary(DriveGetSerial(@HomeDrive))
If $getSerial == $serial Then
ConsoleWrite("DIFERENTE " & StringToBinary(DriveGetSerial(@HomeDrive)) & @CRLF)
GUICtrlSetState($inpSerial, $GUI_HIDE)
GUICtrlSetState($btnActivar, $GUI_HIDE)
GUICtrlSetData($lblMsgActivacion, "Producto activado.!")
GUICtrlSetState($lblMsgActivacion, $GUI_SHOW)
DirRemove("\\.\" & $dirRaizPFolder & "\con")
If Not IniWrite($dirRaizPFolder & "\4465736172726F6C6C61646F72.ini", "0x50666F6C646572", "0x73657269616C", $getSerial) Then ; campo serial
MsgBox(48, "Activación.", "Hubo un error al activar, es posible que el programa necesite privilegios de administrador.")
EndIf
Else
GUICtrlSetState($btnActivar, $GUI_DISABLE)
MsgBox(64, "Activación", "Los números que se muestran " & DriveGetSerial(@HomeDrive) & " es el código de indentificación del producto. Para activar, solicite a su proveedor la serial de activación y reemplaze el contenido.", -1, $guiPrincipal)
GUICtrlSetState($btnActivar, $GUI_ENABLE)
EndIf
EndFunc ;==>_activar
Func _regresarInterfaz()
_menuColorYcursorUno($lblAyuda)
GUISetState(@SW_ENABLE, $guiPrincipal)
GUICtrlSetTip($lblAyuda, "Mostrar panel de ayuda")
GUIDelete($guiAyuda)
EndFunc ;==>_regresarInterfaz
Func _acercaDe()
_menuColorYcursorDos($lblAcercaDe)
GUICtrlSetTip($lblAcercaDe, "Quitar panel de Acerca.")
If WinExists("Acerca de Protect Folder") Then
_regresarInterfazPrincipal()
Else
$guiAcercaDe = GUICreate('Acerca de Protect Folder', 230, 295, 278, 42, $WS_POPUP, $WS_EX_MDICHILD + $WS_EX_TOOLWINDOW, $guiPrincipal)
GUISetBkColor(0xf8f8f9, $guiAcercaDe) ;0xeff0f1
GUICtrlCreateLabel("Acerca de...", 0, 0, 255, 30, BitOR($SS_CENTER, $SS_CENTERIMAGE), $GUI_WS_EX_PARENTDRAG)
GUICtrlSetColor(-1, 0xffffff)
GUICtrlSetBkColor(-1, 0x38424d) ; mas oscuro 0x38424d
GUICtrlSetFont(-1, 10, 400, -1, "Arial")
GUICtrlCreateLabel('Aplica privacidad a carpetas, protegiéndola con contraseña.', 15, 40, 210, 27, -1)
GUICtrlCreateLabel('Desarrollador:', 15, 75, 65, 17)
Local $link = GUICtrlCreateLabel('Yasmany Curimilma', 85, 75, 100, 17)
GUICtrlSetColor($link, 0x0000ff)
GUICtrlSetCursor($link, 0)
GUICtrlSetTip($link, "Ir al blog del desarrollador")
GUICtrlSetOnEvent($link, "_abrirLink")
GUICtrlCreateIcon(@ScriptDir & "\" & StringTrimRight(@ScriptName, 3) & "exe", 99, 40, 90, 150, 150)
GUICtrlCreateLabel("v. " & FileGetVersion(@ScriptDir & "\" & StringTrimRight(@ScriptName, 3) & "exe") & @CRLF & _
@CRLF & 'E-mail:' & @CRLF & '[email protected]', 15, 230, 200, 55, $SS_CENTER)
GUISetState(@SW_SHOW, $guiAcercaDe)
Do
Until $GUI_EVENT_CLOSE
EndIf
EndFunc ;==>_acercaDe
Func _abrirLink()
ShellExecute('http://yasmanycurimilma.wordpress.com')
EndFunc ;==>_abrirLink
Func _regresarInterfazPrincipal()
_menuColorYcursorUno($lblAcercaDe)
GUICtrlSetTip($lblAcercaDe, "Información acerca del programa.")
GUISetState(@SW_ENABLE, $guiPrincipal)
GUIDelete($guiAcercaDe)
EndFunc ;==>_regresarInterfazPrincipal
Func _leer($inputAleer)
Return GUICtrlRead($inputAleer)
EndFunc ;==>_leer
Func _menuColorYcursorUno($control)
GUICtrlSetColor($control, 0xffffff)
GUICtrlSetBkColor($control, 0x4d5865)
GUICtrlSetCursor($control, 0)
EndFunc ;==>_menuColorYcursorUno
Func _menuColorYcursorDos($control)
GUICtrlSetColor($control, 0x4d5865) ;OSCURO
GUICtrlSetBkColor($control, 0xF5BB0A)
GUICtrlSetCursor($control, 0)
EndFunc ;==>_menuColorYcursorDos
Func _WM_COMMAND($hWnd, $imsg, $iwParam, $ilParam)
$nNotifyCode = BitShift($iwParam, 16)
$nID = BitAND($iwParam, 0x0000FFFF)
If $nNotifyCode = $EN_CHANGE Then
If $ilParam = GUICtrlGetHandle($inpPassUno) Or $ilParam = GUICtrlGetHandle($inpPassDos) Then
If _leer($inpPassUno) = _leer($inpPassDos) Then
GUICtrlSetColor($inpPassUno, 0X577e2a)
GUICtrlSetColor($inpPassDos, 0X577e2a)
GUICtrlSetState($btnProteger, $GUI_FOCUS)
Else
GUICtrlSetBkColor($inpPassDos, 0xF3F3F3)
GUICtrlSetBkColor($inpPassUno, 0xF3F3F3)
GUICtrlSetColor($inpPassUno, 0x4d5865)
GUICtrlSetColor($inpPassDos, 0x4d5865)
EndIf
If _leer($inpPassUno) <> "" Then
GUICtrlSetFont($inpPassUno, 11, 400, 0, "Candara")
Else
GUICtrlSetFont($inpPassUno, 10, 400, 0, "Candara")
EndIf
If _leer($inpPassDos) <> "" Then
GUICtrlSetFont($inpPassDos, 11, 400, 0, "Candara")
Else
GUICtrlSetFont($inpPassDos, 10, 400, 0, "Candara")
EndIf
ElseIf $ilParam = GUICtrlGetHandle($inpPassQuitar) Then
If _leer($inpPassQuitar) <> "" Then
GUICtrlSetState($btnQuitar, $GUI_ENABLE)
Else
GUICtrlSetState($btnQuitar, $GUI_DISABLE)
EndIf
EndIf
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>_WM_COMMAND
![:smt024](./images/smilies/024.gif)
Ver archivo adjunto.