Basic Univers
#Access_None = "n"
#Access_Read = "r"
#Access_Write = "w"
#Access_Change = "c"
#Access_Full = "f"
#G = Chr(34)
Procedure.s ShowAccess(Fichier.s)
Protected Handle.l, result.s
Handle = RunProgram("cacls", #G + Fichier +#G, "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Hide)
If Handle
While ProgramRunning(Handle)
result + ReadProgramString(Handle) + #CRLF$
Wend
CloseProgram(Handle)
EndIf
ProcedureReturn result
EndProcedure
Procedure.l RevokeAccess(Fichier.s, Utilisateur.s)
Protected Handle.l, result.l
Handle = RunProgram("cacls", #G + Fichier +#G + " /e /r " + Utilisateur, "", #PB_Program_Hide|#PB_Program_Open|#PB_Program_Write|#PB_Program_Read)
If Handle
result = WriteProgramStringN(Handle, "O")
CloseProgram(Handle)
EndIf
ProcedureReturn result
EndProcedure
Procedure.l DenyAccess(Fichier.s, Utilisateur.s)
Protected Handle.l, result.l
Handle = RunProgram("cacls", #G + Fichier +#G + " /d " + Utilisateur, "", #PB_Program_Hide|#PB_Program_Open|#PB_Program_Write|#PB_Program_Read)
If Handle
result = WriteProgramStringN(Handle, "O")
CloseProgram(Handle)
EndIf
ProcedureReturn result
EndProcedure
Procedure.l GrantAccess(Fichier.s, Utilisateur.s, Access.s)
Protected Handle.l, result.l
Handle = RunProgram("cacls", #G + Fichier +#G + " /g " + Utilisateur + ":" + Access, "", #PB_Program_Hide|#PB_Program_Open|#PB_Program_Write|#PB_Program_Read)
If Handle
result = WriteProgramStringN(Handle, "O")
CloseProgram(Handle)
EndIf
ProcedureReturn result
EndProcedure
Procedure ProtegerFichier()
Filtre$ = "Texte (*.log)|*.txt;*.bat|PureBasic (*.pb)|*.pb|Tous les fichiers (*.*)|*.*"
Filtre = 2
Fichiers$ = OpenFileRequester("Sélectionner un Fichier", FichierParDefaut$, Filtre$, Filtre)
If Fichiers$
DenyAccess(Fichiers$, "a")
MessageRequester("DenyAccess", "Effectué" + #LF$ + ShowAccess(Fichiers$))
Else
MessageRequester("Locker", "Aucun fichier n'a été sélectionné !", #MB_ICONERROR | #MB_OK)
EndIf
EndProcedure
Procedure EnleverProtectionFichier()
Filtre$ = "Texte (*.log)|*.txt;*.bat|PureBasic (*.pb)|*.pb|Tous les fichiers (*.*)|*.*"
Filtre = 2
Fichiers$ = OpenFileRequester("Sélectionner un Fichier", FichierParDefaut$, Filtre$, Filtre)
If Fichiers$
GrantAccess(Fichiers$, "a", #Access_Full)
MessageRequester("GrantAccess", "Effectué:" + #LF$ + ShowAccess(Fichiers$))
Else
MessageRequester("PC-DEV Locker", "Sélectionner un élément de la liste !", #MB_ICONERROR | #MB_OK)
EndIf
EndProcedure
ProtegerFichier()