Protector de Carpetas - 592.kb

y programas personales para otros como tu, puede que te corrijan ;)

Protector de Carpetas - 592.kb

Notapor yasmany » 23 Feb 2017, 06:05

----------------------------------------------------------------------------------------------------------------------
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
----------------------------------------------------------------------------------------------------------------------
Visualizar video:
https://www.youtube.com/watch?v=iUsuuIWTpJ4

Dejo el código completo :smt002
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 & 'yasmanycurimilma@gmail.com', 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


Saludos... :smt024
Ver archivo adjunto.
Adjuntos
Protect Folder.rar
(567.39 KiB) 6 veces
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
yasmany
Hacker del Foro
 
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Volver a esScripts - Programas - Abre tus creaciones maravillosas

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron