Funktionreferenz


_WinAPI_EncryptFile

Beschreibung anzeigen in

Verschlüsselt eine Datei oder ein Verzeichnis

#include <WinAPIFiles.au3>
_WinAPI_EncryptFile ( $sFilePath )

Parameter

$sFilePath Der Name der Datei oder des Verzeichnisses welches verschlüsselt werden soll.
Wenn $sFilePath eine Datei mit nur einem Lesezugriff angibt, schlägt diese Funktion fehl und der letzte Fehlercode ist ERROR_FILE_READ_ONLY (6009).
Wenn $sFilePath ein Verzeichnis mit einer Datei angibt welches nur einen Lesezugriff hat, so gelingt diese Funktion aber das Verzeichnis wird nicht verschlüsselt.

Rückgabewert

Erfolg: True.
Fehler: False. Es ist _WinAPI_GetLastError() aufzurufen um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Die _WinAPI_EncryptFile() Funktion benötigt speziellen Zugriff auf die zu verschlüsselnde Datei und wird fehlschlagen wenn ein anderer Prozess die Datei verwendet.

Wenn die Datei bereits verschlüsselt ist, so wird die Funktion einen ungleich 0 Wert zurückgeben welcher das Gelingen der Funktion signalisiert.
Wenn die Datei komprimiert ist, so wird die Funktion die Datei vor dem Verschlüsseln dekomprimieren.

Um eine verschlüsselte Datei zu entschlüsseln, sollte man die _WinAPI_DecryptFile() Funktion verwenden.

Verwandte Funktionen

_WinAPI_DecryptFile

Siehe auch

Suche nach EncryptFile in der MSDN Bibliothek.

Beispiel

#include <APIFilesConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>

Local $sFile = FileOpenDialog('Select File', @ScriptDir, 'All Files (*.*)', BitOR($FD_FILEMUSTEXIST, $FD_PATHMUSTEXIST))
If @error Then Exit

Switch _WinAPI_FileEncryptionStatus($sFile)
    Case $FILE_ENCRYPTABLE
        If _WinAPI_EncryptFile($sFile) Then
            MsgBox(($MB_ICONINFORMATION + $MB_SYSTEMMODAL), 'Encryption File', 'The file encrypted is successfully.')
        Else
            MsgBox(($MB_ICONERROR + $MB_SYSTEMMODAL), 'Encryption File', 'Unable to encrypt file.')
        EndIf
    Case $FILE_IS_ENCRYPTED
        If MsgBox(($MB_YESNO + $MB_ICONQUESTION + $MB_SYSTEMMODAL), 'Encryption File', 'The file is already encrypted.' & @CRLF & @CRLF & 'Decrypt?') = 6 Then
            If _WinAPI_DecryptFile($sFile) Then
                MsgBox(($MB_ICONINFORMATION + $MB_SYSTEMMODAL), 'Encryption File', 'The file decrypted is successfully.')
            Else
                MsgBox(($MB_ICONERROR + $MB_SYSTEMMODAL), 'Encryption File', 'Unable to decrypt file.')
            EndIf
        EndIf
    Case Else
        MsgBox(($MB_ICONERROR + $MB_SYSTEMMODAL), 'Encryption File', 'Unable to perform operation.')
EndSwitch