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