指定したファイルの暗号化情報を取得 <TOP>
FileEncryptionStatus
指定したファイルの暗号化情報を取得
例では、EditBoxに選択したファイルをドラッグ&ドロップし、情報を取得しています。
'================================================================ '= 指定したファイルの暗号化情報を取得 '= (FileEncryptionStatus.bas) '================================================================ #include "Windows.bi" ' 指定したファイルの暗号化情報を取得 Declare Function Api_FileEncryptionStatus& Lib "advapi32" Alias "FileEncryptionStatusA" (ByVal lpFileName$, lpStatus&) #define FILE_ENCRYPTABLE 0 '暗号化できる #define FILE_IS_ENCRYPTED 1 '暗号化されている #define FILE_SYSTEM_ATTR 2 'システムファイルは暗号化できない #define FILE_ROOT_DIR 3 'ルートディレクトリは暗号化できない #define FILE_SYSTEM_DIR 4 'システムディレクトリは暗号化できない #define FILE_UNKNOWN 5 '暗号化情報は不明 #define FILE_SYSTEM_NOT_SUPPORT 6 'ファイルシステムが暗号化をサポートしていない #define FILE_USER_DISALLOWED 7 '暗号化情報は将来のために予約 #define FILE_READ_ONLY 8 'ファイルは読み取り専用 #define FILE_DIR_DISALLOWED 9 'ディレクトリ暗号化抑制中は暗号化不能を示す Var Shared Edit1 As Object Var Shared Text1 As Object Var Shared Button1 As Object Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 12 Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 12 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 Var Shared FileName As String '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var TargetStatus As Long Var Ret As Long 'ファイルの暗号化状態を取得 Ret = Api_FileEncryptionStatus(FileName, TargetStatus) ' 暗号化状態を表示 Select Case TargetStatus '暗号化可能のときは Case FILE_ENCRYPTABLE Text1.SetWindowText "暗号化できます。" '暗号化済みのときは Case FILE_IS_ENCRYPTED Text1.SetWindowText "暗号化されています。" 'システムファイルのときは Case FILE_SYSTEM_ATTR Text1.SetWindowText "システムファイルは" & Chr$(13, 10) & "暗号化できません。" 'ルートディレクトリのときは Case FILE_ROOT_DIR Text1.SetWindowText "ルートディレクトリは" & Chr$(13, 10) & "暗号化できません。" 'システムディレクトリのときは Case FILE_SYSTEM_DIR Text1.SetWindowText "システムディレクトリは" & Chr$(13, 10) & "暗号化できません。" '暗号化状態が不明のときは Case FILE_UNKNOWN Text1.SetWindowText "暗号化状態は不明です。" '暗号化非サポートのときは Case FILE_SYSTEM_NOT_SUPPORT Text1.SetWindowText "暗号化はサポートされていません。" '読み取り専用のときは Case FILE_READ_ONLY Text1.SetWindowText "読み取り専用は" & Chr$(13, 10) & "暗号化できません。" 'ディレクトリ暗号化抑制中のときは Case FILE_DIR_DISALLOWED Text1.SetWindowText "暗号化抑制中は" & Chr$(13, 10) & "暗号化できません。" 'その他のときは Case Else Text1.SetWindowText "暗号化情報は判定できません。" End Select End Sub '================================================================ '= シェルドロップされたファイル名を取得 '================================================================ Declare Sub Edit1_DropFiles edecl (ByVal DF As Long) Sub Edit1_DropFiles(ByVal DF As Long) Var CN As Long CN = GetDropFileCount(DF) FileName = GetDropFileName(DF, 0) Edit1.SetWindowtext FileName End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End