Page 1 sur 1

calcs ne marche pas pour dossier

Publié : ven. 13/oct./2006 17:05
par SpaceMan
salut
le code ci-après fonctionne pour les fichiers mais pas pour les dossiers
Aidez-moi please.

Code : Tout sélectionner

;==================================================================================================================== 
; 
; Object:      Microsoft Cacls 
; Information: Displays or modifies discretionary access control list (DACL) files. 
; Information: Affiche ou modifie les listes DACL (Discretionary Access Control List) pour des fichiers spécifiés. 
; WebSite:     http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cacls.mspx 
; 
;==================================================================================================================== 

#Access_None   = "n" 
#Access_Read   = "r" 
#Access_Write  = "w" 
#Access_Change = "c" 
#Access_Full   = "f" 
#AS=Chr(92)
;==================================================================================================================== 

Procedure.s ShowAccess(Fichier.s) ; Affiche les listes DACL des fichiers spécifiés. 
  
  Protected handle.l, result.s 
  
  handle = RunProgram("cacls", Fichier, "", #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) ; Révoque les droits d'accès de l'utilisateur spécifié. 
  
  Protected handle.l, result.l 
  
  handle = RunProgram("cacls", Fichier + " /e /r " + 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 DenyAccess(Fichier.s, Utilisateur.s) ; Refuse l'accès à l'utilisateur spécifié. 
  
  Protected handle.l, result.l 
  
  handle = RunProgram("cacls", Fichier + " /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 GrantAccess(Fichier.s, Utilisateur.s, Access.s) ; Accorde des droits d'accès à l'utilisateur spécifié. 
  
  Protected handle.l, result.l 
  
  handle = RunProgram("cacls", Fichier + " /g " + 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 

Procedure.l ReplaceAccess(Fichier.s, Utilisateur.s, Access.s) ; Remplace les droits d'accès de l'utilisateur spécifié. 
  
  Protected handle.l, result.l 
  
  handle = RunProgram("cacls", Fichier + " /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 
  
 
;==================================================================================================================== 
CheminInitial$ = "C:\Test"   ; Répertoire par défaut qui sera affiché (une chaîne vide est aussi possible)
  Chemin$ = PathRequester("Choisissez un répertoire", CheminInitial$)
  If Chemin$
        
; Affiche les droits 
  
  MessageRequester("ShowAccess", ShowAccess(Fichier$)) 
  
  ; Accorde des droits d'accès 
  
  If GrantAccess(Chemin$, "BUILTIN\Utilisateurs", #Access_Full) 
    MessageRequester("GrantAccess", "Effectué:" + #LF$ + ShowAccess(Chemin$)) 
  EndIf 
  
  ; Refuse l'accès 
  
  If DenyAccess(Chemin$, "BUILTIN\Utilisateurs") 
    MessageRequester("DenyAccess", "Effectué:" + #LF$ + ShowAccess(Chemin$)) 
  EndIf 
  
  ; Remplace les droits 
  
  If ReplaceAccess(Chemin$, "BUILTIN\Administrateurs", #Access_Read) 
    MessageRequester("ReplaceAccess", "Effectué:" + #LF$ + ShowAccess(Chemin$)) 
  EndIf 
  
  ; Remplace les droits 
  
  If ReplaceAccess(Chemin$, "BUILTIN\Administrateurs", #Access_Full) 
    MessageRequester("ReplaceAccess", "Effectué:" + #LF$ + ShowAccess(Chemin$)) 
  EndIf 
  
  ; Révoque les droits 
  
  If RevokeAccess(Chemin$, "BUILTIN\Administrateurs") 
    MessageRequester("RevokeAccess", "Effectué:" + #LF$ + ShowAccess(Chemin$)) 
  EndIf 
  
  ;DeleteFile(Fichier$)   
; IDE Options = PureBasic v4.00 (Windows - x86)
; CursorPosition = 96
; FirstLine = 47
; Folding = j
; EnableUnicode
; EnableThread
; EnableXP
; DisableDebugger
merci à vous !!!

Publié : ven. 13/oct./2006 19:58
par Droopy
T'aurais pas encore oublié de mettre le chemin du fichier entre guillemet ( chr(34)) ???