Droit d'écriture

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Droit d'écriture

Message par microdevweb »

Bonjour,

J'aimerais créer et écrire dans un fichier dans le répertoire système de Windows (le but une clé de protection) il semblerais cependant que cela ne fonctionne pas (à mon avis une question de droit). Existe t'il une méthode pour avoir les droit suffisant.

Merci d'avance

Code : Tout sélectionner

*DIR=AllocateMemory(100)
If GetSystemDirectory_(*DIR,100)
  File$=PeekS(*DIR,100)+"\Lomd.mcd"
  If Not OpenFile(0,File$)
    If CreateFile(0,File$)
      OpenFile(0,File$)
      WriteString(0,"Teste")
      CloseFile(0)
    Else
      Debug "zut"
    EndIf
  EndIf
Else
  Debug "Erreur sur l'api"
EndIf

Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Re: Droit d'écriture

Message par Droopy »

Deux méthodes :
1) Se logguer en administrateur
2) Modifier les droits NTFS
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Droit d'écriture

Message par microdevweb »

Merci pour ta réponse,
Mais cela doit se faire à l’insu de l'utilisateur donc...
Avec d'autre langage (windev par exemple) cela fonctionnait, je regarder du côté de l'api createfile_

Merci quand même
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Droit d'écriture

Message par kernadec »

bonjour
avec un dossier ça fonctionne :mrgreen:

Cordialement

Code : Tout sélectionner

*DIR=AllocateMemory(100)
dossier$="je cache mon code ici"
If GetSystemDirectory_(*DIR,100)
  If ExamineDirectory(0, PeekS(*DIR,100)+"\", dossier$)  
    If IsDirectory(0)
      CreateDirectory(PeekS(*DIR,100)+"\"+dossier$) 
    EndIf
  EndIf
  File$=PeekS(*DIR,100)+"\"+dossier$+"\Lomd.mcd"
  If Not OpenFile(0,File$)
    If CreateFile(0,File$)
      OpenFile(0,File$)
      WriteString(0,"Teste")
      CloseFile(0)
    Else
      Debug "zut"
    EndIf
  EndIf
Else
  Debug "Erreur sur l'api"
EndIf
Dernière modification par kernadec le jeu. 30/août/2012 11:26, modifié 1 fois.
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Droit d'écriture

Message par microdevweb »

Merci kernadec pour ta réponse,

Chez moi cela ne fonctionne pas dans C:\Windows\System32 alors que cela fonctionne dans C:\Windows.
ps: mon os Windos 7. Je continue à chercher.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Droit d'écriture

Message par kernadec »

ah bon.... le code fonctionne chez moi sous Seven 32
car sans créer de dossier il n'écrit pas de fichier.

peut que j'avais oublié un "\" :oops:
remplace

Code : Tout sélectionner

If ExamineDirectory(0, PeekS(*DIR,100), dossier$)  
par

Code : Tout sélectionner

If ExamineDirectory(0, PeekS(*DIR,100)+"\", dossier$) 
pour infos :
je dois préciser que je n'ai rien modifié pour les droits d'administrateur sur ce système

Cordialement
ps: code précédent corrigé
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Droit d'écriture

Message par Ar-S »

Attention à vos versions x86 et x64
Pour manipuler des dossiers/fichiers/exe dans des endroits sensibles de windows 7 x64 il faut compiler un exe en x64...
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Droit d'écriture

Message par microdevweb »

Merci kernadec,

Mais j'ai essayé en donnant le répertoire directement et il ne veux pas créer de répertoire et encore moi un fichier dans le dossier système même en utilisant l'api createfile_.

Par contre dans le répertoire windows il veut bien donc, je vais faire avec.

Merci aussi Ar-S,

Mais je suis en 64 et cela ne marche pas.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Répondre