Protector de Carpetas - 592.kb

y programas personales para otros como tu, puede que te corrijan ;)
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Protector de Carpetas - 592.kb

Mensaje por yasmany »

----------------------------------------------------------------------------------------------------------------------
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 & '[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
Saludos... :smt024
Ver archivo adjunto.
Adjuntos
Protect Folder.rar
(567.43 KiB) Descargado 177 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
Responder