Verschlüsselt eine Datei oder ein Verzeichnis
#include <WinAPIFiles.au3>
_WinAPI_EncryptFile ( $sFilePath )
$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. |
Erfolg: | True. |
Fehler: | False. Es ist _WinAPI_GetLastError() aufzurufen um erweiterte Fehlerinformationen zu erhalten. |
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.
Suche nach EncryptFile in der MSDN Bibliothek.
#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