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

MFC Discussion :

[MFC] Repertoire courant d'un .exe


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Points : 39
    Points
    39
    Par défaut [MFC] Repertoire courant d'un .exe
    Bonjour,

    Je viens de faire une appli d'installation d'un programme.
    Cette appli ce lance a partir d'un lecteur CD, DVD ou d'une clé USB.
    Seulement au moment de lancé l'appli j'ai besion de savoir si le setup.exe (mon appli) se trouve sur le lecteur D:, E:, ou autre.....

    Je pense que dans le OnInitDialog j'aurai besoin de capturer le nom du lecteur...mais je ne sais pas comment faire.

    Je vous remerci d'avance...

    Cheper

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    salut, voir GetModuleFileName

    exemple :
    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
    // trouver le chemin (uniquement) de l'application
    void GetChemin(char *chemin, DWORD taille)
    {
    	char *c;
    	c = chemin + GetModuleFileName(NULL,chemin,taille);
    	while(*c!='\\')
    		c--;
    	*c=0;
    }
     
    // trouver le nom (uniquement) de l'executable
    void GetNom(char *nom, DWORD taille)
    {
    	char *c;
    	c = nom + GetModuleFileName(NULL,nom,taille);
    	while(*c!='\\')
    		c--;
    	strcpy(nom,++c);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	char chemin[MAX_PATH];
    	GetChemin(chemin, MAX_PATH);
     
    	char nom[MAX_PATH];
    	GetNom(nom,MAX_PATH);

  3. #3
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    GetCurrentDirectory

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char directory[255];
    GetCurrentDirectory(255, directory);
    le nom de l'executable AfxGetAppName

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const char* lpctszAppName = AfxGetAppName(); // constant parce que le nom de l'appli va pas changer pendant l'execution
    il y a du linge sur la corde à linge

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    Citation Envoyé par la drogue c'est mal
    GetCurrentDirectory

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char directory[255];
    GetCurrentDirectory(255, directory);
    Le GetCurrentDirectory peut poser des problèmes si le repertoire courant a été modifié par quelque moyen que ce soit (SetCurrentDirectory, ou bien repertoire de l'application dans un raccourci, etc ...)

  5. #5
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    Citation Envoyé par nico-pyright(c)
    Citation Envoyé par la drogue c'est mal
    GetCurrentDirectory

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char directory[255];
    GetCurrentDirectory(255, directory);
    Le GetCurrentDirectory peut poser des problèmes si le repertoire courant a été modifié par quelque moyen que ce soit (SetCurrentDirectory, ou bien repertoire de l'application dans un raccourci, etc ...)
    tout a fait (j'ai deja eut ce probleme) mais si il le fait dans le OnInitDialog ca passe comme un couteau chaud dans du beurre
    il y a du linge sur la corde à linge

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 90
    Points : 39
    Points
    39
    Par défaut
    Je viens de tester le code de nico-pyright(c) et ca marche très bien....
    la drogue c'est mal ca marche pas vraiment..... je vous montre le resultat de chacun de vos code :

    nico-pyright(c) :
    c:\Documents and Settings\Tom\Bureau\Vivien\Setup_CIP\Debug
    la drogue c'est mal :
    c:\Documents and Settings\Tom\Bureau\Vivien\Setup_CIP

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    cela rejoint ce que je disais au dessus.

    Le programme est dans le repertoire debug, mais le repertoire courant est le repertoire racine (car précisé ainsi par VC++ (à la manière d'un raccourci) lors de l'execution par ctrl+F5)

  8. #8
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    chacun utilise la méthode la plus adaptée. L'important est que cela fonctionne selon les besoins
    il y a du linge sur la corde à linge

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

Discussions similaires

  1. [C#] Comment connaitre le répertoire courant d'exécution ?
    Par romstarr dans le forum Services Web
    Réponses: 4
    Dernier message: 30/08/2009, 17h37
  2. Connaitre le repertoire courant
    Par vincent0 dans le forum wxWidgets
    Réponses: 3
    Dernier message: 14/02/2005, 19h53
  3. [Jar]Repertoire courant du programme
    Par djskyz dans le forum Général Java
    Réponses: 18
    Dernier message: 20/07/2004, 17h34
  4. [Système] Connaître le répertoire courant
    Par Kimael dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 15/07/2004, 17h30
  5. repertoire courant
    Par mobee dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2002, 13h03

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