Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Этот вариант мне больше понравился:

Код: Выделить весь код
$sFile = FileOpenDialog("Select a file", "", "All files (*.*)")
If @error Then Exit

Global $sPass = InputBox("File security", "Please set a password", "", "*")
If @error Then Exit

Global $hFile = _CreateFile($sFile)
If $hFile = -1 Then Exit MsgBox(16, "Error", "Unable to open file")

HotKeySet("^d", "_Decrypt") ;Ctrl + d

While 1
    Sleep(100)
WEnd

Func _CreateFile($sFile)
    Local Const $GENERIC_READ  = 0x80000000
    Local Const $GENERIC_WRITE = 0x40000000
    Local Const $OPEN_EXISTING = 3

    $sFile = "\\.\" & $sFile

    Local $aRet = DllCall("kernel32.dll", "hwnd", "CreateFile", _
                                          "str", $sFile, _
                                          "int", BitOR($GENERIC_READ, $GENERIC_WRITE), _
                                          "int", 0, _
                                          "ptr", 0, _
                                          "int", $OPEN_EXISTING, _
                                          "int", 0, _
                                          "int", 0)
    Return $aRet[0]
EndFunc   ;==>_CreateFile

Func _Decrypt()
    Local $sCurPass = InputBox("File security", "Please enter a password", "", "*")
    If @error Then Return 0

    If $sCurPass == $sPass Then
        DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", $hFile)
        MsgBox(64, "Success", "File decrypted")
        Exit
    Else
        MsgBox(16, "Error", "Access denied")
    EndIf
EndFunc   ;==>_Decrypt
Только вот здесь нельзя выбрать несколько файлов и нельзя выбрать целую папку, в отличии от кода предложенного Creat0R-ом. А в коде Creat0R-а не совсем всё работает. Допустим если закрыть доступ к файлу и открыть его вордом то он без проблем откроется или музыкальный файл с таким же успехом открывается в любом плеере.

МОжет кто подправит?

-------
Хочу научиться писать драйвера на с++


Отправлено: 15:48, 16-12-2008 | #1292