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

C++ Discussion :

Vérifier le nom de son exécutable ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Par défaut Vérifier le nom de son exécutable ?
    Bonjour,

    Savez-vous comment fait-on pour vérifier le nom de son exécutable ?

    J'ai tenté différentes chose dont celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TCHAR buffer[MAX_PATH];
    TCHAR* c = buffer + GetModuleFileName(NULL, buf, MAX_PATH);
    char * nom_fichier = "fichier.exe";
    if(c != nom_fichier) return 0;
    ...tentative qui s'est avérée infructueuse.

    Je penseai que c pouvait renvoyer un chemin complet donc j'ai également tester comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TCHAR buffer[MAX_PATH];
    TCHAR* c = buffer + GetModuleFileName(NULL, buf, MAX_PATH);
    char * nom_fichier = "C:\\fichier.exe";
    if(c != nom_fichier) return 0;
    ...mais rien n'y fait, rien ne fonctionne.

    Merci pour une petite aide.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    tu peux utiliser l'opérateur == ou != avec des std::string, mais avec des char* ça sera pas ça.

    pareil pour l'opérateur +. Et buffer, il devrait pas être à la place de buf?

    genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char fileName[MAX_PATH];
    HINSTANCE hInstance = GetModuleHandle(NULL);
    GetModuleFileName( hinstance, fileName, MAX_PATH);
    mais c'est de l'api windows, pas du C++.

    après tu peux faire un strcmp() pour comparer deux char* ou mettre ton char* dans un std::string et faire la comparaison

  3. #3
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    1/ Si tu compares des pointeurs, ce n'est pas la meme chose que comparer les chaines vers lesquelles ils pointent. Voir strcmp, mais en C++ on a plutot tendance a utiliser des std::string.
    2/ Pour ce que retournent les fonctions de Windows, voir le forum adapte
    3/ Voir argv[0] pour ce qui s'en rapproche le plus de maniere portable. Mais il y a peu de garanties.

  4. #4
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Par défaut
    Merci à vous !

    Par contre ce qui me gène c'est qu'on soit obligé d'indiquer le path complet...savez-vous comment s'y prend-on pour vérifier uniquement le nom de son exécutable CAD pour arriver à quelque chose qui ressemblerait à ceci :

    std::string nom_fichier = "fichier.exe";

    et non pas :

    std::string nom_fichier = "C:\\fichier.exe";

    Merci.

  5. #5
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut Re
    Citation Envoyé par sansblague
    savez-vous comment s'y prend-on pour vérifier uniquement le nom de son exécutable
    Rien de portable car chaque système a sa propre manière de gérer les fichiers (d'attribuer un nom, ...). Sous Windows tu peux utiliser la fonction _splitpath qui va découper ton chemin en drive, dir, file, ext.

  6. #6
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 43
    Par défaut
    Ouai ben j'ai bien du mal avec _splitpath. Autant même dire que je n'y arrive pas du tout...

    Vous n'auriez pas un petit exemple SVP afin que je mette ce topic en résolu

    Merci.

  7. #7
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Faq -> C++ -> manipulation de chaines, tout y est expliqué pour récupérer le nom du fichier à partir d'un chemin complet.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/08/2010, 23h40
  2. Fonction "Vérifier les noms" dans Outlook
    Par vciofolo dans le forum Access
    Réponses: 2
    Dernier message: 15/03/2006, 08h35
  3. Empêcher la copie d'un prog pendant son exécution
    Par JuanLopez1966 dans le forum Assembleur
    Réponses: 3
    Dernier message: 09/09/2004, 19h49
  4. Comment gérer plusieurs icones dans son exécutable ?
    Par declencher dans le forum Langage
    Réponses: 5
    Dernier message: 15/10/2003, 10h49
  5. Réponses: 2
    Dernier message: 06/07/2002, 12h36

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