IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Liste des répertoires protégés en écriture


Sujet :

Delphi

  1. #1
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut Liste des répertoires protégés en écriture
    Bonjour,

    Je suis persuadé que cette liste doit exister quelque part mais je n'arrive pas à la trouver.

    Je chercher une liste complète des répertoires protégés en écritures par l'UAC ou autre fioritures de Windows.

    Jusqu'à présent je connais les répertoires suivants:
    C:\Windows et dossiers enfants
    C:\Program Files et dossiers enfant.

    Sous Vista rien ne semblait interdire la création de fichier ou l'écriture à l'intérieur d'un fichier existant à la racine de C:\. Et je m'apperçois à présent sous Windows 7 que cela n'est plus possible.

    Apparemment le dossier ProgramData pose également des soucis. J'étais persuadé qu'il s'agissait justement d'un répertoire prévu pour ce genre de chose.


    Je cherche donc
    - une liste complète des répertoires protégés en écritures par Windows
    - le nom du répertoire (s'il existe) prévu pour la création de fichiers par programme (et encore mieux le nom de la routine qui me le retourne).

    Merci

  2. #2
    Membre éclairé
    Avatar de Whiler
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 298
    Points : 664
    Points
    664
    Par défaut
    Pour un programme, je ne sais pas...
    Pour un utilisateur donné : SysUtils.GetHomePath

  3. #3
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Bonjour,

    un petit coup d'oeil là dessus :

    http://delphi.developpez.com/faq/?pa...ecialdirectory

    Donc avec la paramètre CSIDL_APPDATA tu auras ce que tu veux.

  4. #4
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Citation Envoyé par popo Voir le message
    Je cherche donc
    - une liste complète des répertoires protégés en écritures par Windows
    - le nom du répertoire (s'il existe) prévu pour la création de fichiers par programme
    Pour les répertoires protégés, tout dépend des droits d'accès qu'on veut bien leur donner. Rien empêche à un administrateur du PC de modifier les droits d'un répertoire pour qu'on puisse ou non y écrire.

    Pour le deuxième point, il suffit d'aller écrire par exemple dans un sous-répertoire du profil de l'utilisateur en cours, comme par exemple dans le répertoire AppData (variable environement %APPDATA%)

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Bonjour,

    un petit coup d'oeil là dessus :

    http://delphi.developpez.com/faq/?pa...ecialdirectory

    Donc avec la paramètre CSIDL_APPDATA tu auras ce que tu veux.
    Je te remercie pour ton idée mais j'avais déjà visité la FAQ avant de poster et le paramètre CSIDL_APPDATA me renvoi le dossier AppData de l'utilisateur associé à la session ouverte. Il ne faut pas que le répertoire soit défini en fonction de l'utilisateur, il faut qu'il soit fixe.


    Pour les répertoires protégés, tout dépend des droits d'accès qu'on veut bien leur donner. Rien empêche à un administrateur du PC de modifier les droits d'un répertoire pour qu'on puisse ou non y écrire.

    Pour le deuxième point, il suffit d'aller écrire par exemple dans un sous-répertoire du profil de l'utilisateur en cours, comme par exemple dans le répertoire AppData (variable environement %APPDATA%)
    Pour le premier point : je parlais bien entendu des répertoires bloqués par défaut par Windows sans intervention d'administrateur réseau.

    Pour le deuxième point : même réponse qu'à Thierry. Il ne faut pas que le répertoire soit défini en fonction de l'utilisateur, il faut qu'il soit fixe.

  6. #6
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Bon après quelques essais infructueux, je pense avoir trouvé une solution très bidouille selon moi mais semble très fonctionner.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    function GetPublicDocumentDir : String;
    var SFolder : pItemIDList;
        SpecialPath : Array[0..MAX_PATH] Of Char;
        Test : String;
    begin
      SHGetSpecialFolderLocation(FrmTest.Handle, 46, SFolder);
      SHGetPathFromIDList(SFolder, SpecialPath);
     
      { Retourne "C:\Users\Public\Documents" sur Vista et Seven
        Retourne Une chaîne vide sur XP }
      Test := StrPas(SpecialPath);
      if (Trim(Test) = '') then
      begin
        { Retourne "C:\Documents and Settings\All Users\Application Data" sur XP }
        SHGetSpecialFolderLocation(FrmTest.Handle, 35, SFolder);
        SHGetPathFromIDList(SFolder, SpecialPath);
        Test := StrPas(SpecialPath);
      end;
     
      Return Test;
    end;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liste des répertoires et sous-rép d'un lecteur
    Par Tunka dans le forum Delphi
    Réponses: 1
    Dernier message: 13/10/2006, 12h38
  2. [VBA-E] Liste des répertoires
    Par linda15975 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/03/2006, 08h23
  3. Obtenir la liste des répertoires et le chemin
    Par claralavraie dans le forum Oracle
    Réponses: 2
    Dernier message: 16/02/2006, 17h45
  4. Récupérer la liste des répertoires d'un répertoire
    Par oursblanc dans le forum Langage
    Réponses: 3
    Dernier message: 19/10/2005, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo