ce code me rend dingue(Probleme Réglé)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

ce code me rend dingue(Probleme Réglé)

Message par SpaceMan »

salut à tous !!!
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)
Merci d'avance
Dernière modification par SpaceMan le lun. 13/nov./2006 20:03, modifié 1 fois.
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

ben j'ai trouvé chers basiciens

Message par SpaceMan »

j'ai juste déplacer le dernier MessageRequester :lol:

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) 
MessageRequester("Information","C'est ok! la protection du fichier a été enlevé ",0) 
SetFileAttributes(Fichier$,#PB_FileSystem_Normal):EndIf 
c'est pour ça que je suis allé au lit à 5h du mat :lol:
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Tu devrais ajouté <<Réglé>> en entête !!
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bonjour SPACEMAN

Il marche apparement ton code, j'arrive pas a effacer le fichier, ni le modifier, mais vraiment pas.
Ca ressemble a ces fichiers qui se copient a moitié et qui nous embetent jusqu'a ce qu'on emploi les grands moyens.

Donc il me restera plus qu'a passer par le mode sans echec ou dos. :lol:

Je suppose que cela ne marche pas avec W98 ???

Si t'avais le meme mais dans l'autre sens, ça eviterait de ressortir les disquettes dos pleine de poussiere.

Bonne journée
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Kwai chang caine a écrit :Donc il me restera plus qu'a passer par le mode sans echec ou dos. :lol:
as-tu essayé avec un soft genre 'unlocker' ?

http://ccollomb.free.fr/unlocker/
Image
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

salut à tous

Message par SpaceMan »

@ Kwai chang caine
non le code ne fonctionne que sous les systemes de fichiers NTFS
cela dit si tu arrives à convertir une de tes partitions FAT32 (si tu en as +sieurs) en NTFS ça devrait marcher sur cette derniere. il existe des softs pour le faire.
si je dois faire un code pour WIN98 je serai obligé d'utilisé les API ce que je ne maitrise pas encore. :roll:
@ Flype
as-tu essayé avec un soft genre 'unlocker' ?

http://ccollomb.free.fr/unlocker/
c'est essai le "unlocker" ça fonctionnait chez moi

@brossden
Tu devrais ajouté <<Réglé>> en entête !!
ok je le ferai
merci d'etre venu jeter un coup d'oeil :D
j'en ai fait un petit soft. je vais mettre le lien sur le forum pour que les Basiciens l'essaient
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

@ FLYPE, Tu es un DIEU
Ce logiciel c'est trop de la balle.....
Je te remercie beaucoup, il y avait longtemps que je cherchais ce type de giciel en freeware.
Je n'avais trouvé que des softs qui s'executent en ligne de code.

@SpaceMan
Encore bravo pour ce code.

Bonne journée à vous deux. :wink:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

Message par SpaceMan »

Merci Kwai chang caine
ce code je ne l'aurai pas réalisé sans l'aide de Flype , Droopy et les autres.
Un défaut qui empêche les hommes d’agir, c’est de ne pas sentir de quoi ils sont capables.
Jacques Bénigne Bossuet
Répondre