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

Windows Discussion :

[Vista] Récupérer le chemin du répertoire utilisateur


Sujet :

Windows

  1. #1
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut [Vista] Récupérer le chemin du répertoire utilisateur
    Bonjour,

    Je suis entrain de porter l'une des mes applications vers Vista SP1 et je rencontre un soucis avec la fonction CopyFile vers le répertoire "C:\Windows\system32". En effet, après quelques recherches, c'est un soucis de droit.
    Excepté, si vous avez une eventuelle solution pour contourner ce problème de droit, j'ai pensé copier mon fichier dans le répertoire de l'utilisateur courant:
    "C:\Users\Tata\prog.exe".
    Par quelle fonction d'API ou autres manières puis je récupérer le chemin de l'utilisateur actuel, dans mon cas: "C:\Users\Tata".

    Merci.

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 109
    Points : 168
    Points
    168
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <windows.h>
    
    int WINAPI WinMain(HINSTANCE a, HINSTANCE b, LPSTR c, int d)
    {
      char UserPath[MAX_PATH];
    
      GetEnvironmentVariable("USERPROFILE", UserPath, MAX_PATH);
      MessageBox(0, UserPath, "", 0);
      return 0;
    }
    Ou aussi...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <windows.h>
    #include <shlobj.h>
    
    int WINAPI WinMain(HINSTANCE a, HINSTANCE b, LPSTR c, int d)
    {
      char UserPath[MAX_PATH];
    
      SHGetFolderPath(0, CSIDL_PROFILE, 0, 0, UserPath);
      MessageBox(0, UserPath, "", 0);
      return 0;
    }

  3. #3
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut
    Merci pour ces deux solutions. En effet, passer par les variables d'environnement me paraît nikel!

    A ciao!

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Attention, la première solution est plus ou moins dépréciée, je recommande la seconde à la place.

    Et si tu n'as pas envie d'être compatible avec XP et antérieurs, c'est encore une troisième solution qui est désormais recommandée par Microsoft.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Et si tu n'as pas envie d'être compatible avec XP et antérieurs, c'est encore une troisième solution qui est désormais recommandée par Microsoft.
    Recommandé par Microsoft je veux bien, mais il oublie de dire que Vista est déprécié.
    Conclusion: faut pas y toucher à cette fonction.

  6. #6
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Attention, la première solution est plus ou moins dépréciée, je recommande la seconde à la place.

    Et si tu n'as pas envie d'être compatible avec XP et antérieurs, c'est encore une troisième solution qui est désormais recommandée par Microsoft.
    Pourquoi plus ou moins obsolète?

    Vu que je désire conserver la compatibilité avec XP, va pour la seconde méthode alors.

    Thanks.

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Citation Envoyé par homeostasie Voir le message
    Pourquoi plus ou moins obsolète?
    Disons, pour commencer, que les variables d'environnement ne référencent pas tous les dossiers spéciaux.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. récupérer le chemin du répertoire local (Mac OS)
    Par nekcorp dans le forum Général Python
    Réponses: 2
    Dernier message: 10/05/2014, 00h25
  2. Récupérer le chemin du répertoire Démarrage
    Par vincent63 dans le forum Langage
    Réponses: 4
    Dernier message: 03/08/2008, 12h23
  3. Récupérer le chemin du cache utilisateur
    Par yamayo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/01/2008, 18h12
  4. [RCP] Récupérer le chemin du répertoire d'une application RCP
    Par nienor dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 21/03/2007, 09h56
  5. Réponses: 4
    Dernier message: 08/08/2006, 23h33

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