ce code refuse l'accés à un fichier et le cache (là tout fonctionne).Pour enlever "l'accès refusé"(là encore c'est ok).
mais lorsqu'il faut enlever l'attribut caché (ben là ca ne passe pas) et je ne comprends pas pourquoi ?
s'il vous plait aidez-moi...

Code : Tout sélectionner
#Access_None = "n"
#Access_Read = "r"
#Access_Write = "w"
#Access_Change = "c"
#Access_Full = "f"
#G=Chr(34)
Global Fichier$
Procedure.l DenyAccess(File.s, Utilisateur.s) ; Refuse l'accès à l'utilisateur spécifié.
Protected Handle.l, result.l
Handle = RunProgram("cacls", #G+File+#G + " /d " + Utilisateur, "", #PB_Program_Hide|#PB_Program_Open|#PB_Program_Write|#PB_Program_Read)
If Handle
result = WriteProgramStringN(Handle, "O") ; Répond 'Oui' à la confirmation
CloseProgram(Handle)
EndIf
ProcedureReturn result
EndProcedure
Procedure.l ReplaceAccess(File.s, Utilisateur.s, Access.s) ; Remplace les droits d'accès de l'utilisateur spécifié.
Protected Handle.l, result.l
Handle = RunProgram("cacls", #G+File+#G + " /p " + Utilisateur + ":" + Access, "", #PB_Program_Hide|#PB_Program_Open|#PB_Program_Write|#PB_Program_Read)
If Handle
result = WriteProgramStringN(Handle, "O") ; Répond 'Oui' à la confirmation
CloseProgram(Handle)
EndIf
ProcedureReturn result
EndProcedure
Filtre$ = "Texte (*.log)|*.txt;*.bat|PureBasic (*.pb)|*.pb|Tous les fichiers (*.*)|*.*"
Filtre = 2
Fichier$ = OpenFileRequester("Protéger un Fichier", FichierParDefaut$, Filtre$, Filtre)
If Fichier$
SetFileAttributes(Fichier$,#PB_FileSystem_Hidden):EndIf
DenyAccess(Fichier$, "BUILTIN\Administrateurs")
MessageRequester("Information","C'est ok le fichier a été protégé ",0)
Filtre$ = "Texte (*.log)|*.txt;*.bat|PureBasic (*.pb)|*.pb|Tous les fichiers (*.*)|*.*"
Filtre = 2
Fichier$ = OpenFileRequester("Enlever protection Fichier", FichierParDefaut$, Filtre$, Filtre)
If Fichier$
ReplaceAccess(Fichier$, "BUILTIN\Administrateurs", #Access_Full)
SetFileAttributes(Fichier$,#PB_FileSystem_Normal):EndIf
MessageRequester("Information","C'est ok! la protection du fichier a été enlevé ",0)