Question triviale: Qui suis-je ?

Le
Roger
Bonjour,

Trivial certainement pour un non débutant !

J'écris un petit programme en C++ qui utilise l'API 32 sous Windows XP, il
commence donc par:

int APIENTRY WinMain( HINSTANCE W_n0inst, HINSTANCE W_n0precinst, LPTSTR
W_CmdLine, int W_cdeaffich)

qui se contente ensuite de créer une fenêtre par:

clefenetre = CreateWindow (nomclassefenetre, titrefenetre, WS_CAPTION |
WS_OVERLAPPEDWINDOW, 50, 50, 640, 470, NULL, NULL, n0instance, NULL);

rien de plus ordinaire donc.

Sauf qu'à un certain point du programme je voudrais savoir qui je suis,
c'est à dire le nom du programme qui est entrain de s'exécuter ainsi que son
chemin d'accès sur le disque ! (choses que moi je sais évidemment, mais que
je voudrais retrouver par programmation)

Depuis ce matin, je parcours les fonctions de l'API32 et je n'ai toujours
pas trouvé quelle est ou quelles sont la ou les fonctions qui peuvent me
donner ces deux infos.

Merci pour votre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Roger
Le #23197111
Ok, j'ai la réponse:
GetModuleFileName
Merci
Jean-Claude BELLAMY
Le #23197551
Le vendredi 11/03/2011 15:21:26, Roger a écrit dans le message
[...] je voudrais savoir qui je suis, c'est
à dire le nom du programme qui est entrain de s'exécuter ainsi que son chemin
d'accès sur le disque ! (choses que moi je sais évidemment, mais que je
voudrais retrouver par programmation)




C'est contenu tout bêtement dans le paramètre de rang 0!

argv[0] en C/C++
paramstr(0) en Delphi
$0 en Perl
%0 dans un batch
...

--

May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP Expert IT Pro]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Roger
Le #23199991

C'est contenu tout bêtement dans le paramètre de rang 0!

argv[0] en C/C++
paramstr(0) en Delphi
$0 en Perl
%0 dans un batch
...



Merci, mais je suis sous windows par un programme dont le point d'entrée
est:
int APIENTRY WinMain( HINSTANCE W_n0inst, HINSTANCE W_n0precinst, LPTSTR
W_CmdLine, int W_cdeaffich)

et non pas: void main(void)

Ai-je accès quand même à argv[0] ?

Le GetModuleFileName de l'API32 fonctionne
Christian ASTOR
Le #23200901
Roger a écrit :

C'est contenu tout bêtement dans le paramètre de rang 0!

argv[0] en C/C++
paramstr(0) en Delphi
$0 en Perl
%0 dans un batch
...



Merci, mais je suis sous windows par un programme dont le point d'entrée
est:
int APIENTRY WinMain( HINSTANCE W_n0inst, HINSTANCE W_n0precinst, LPTSTR
W_CmdLine, int W_cdeaffich)
et non pas: void main(void)

Ai-je accès quand même à argv[0] ?
Le GetModuleFileName de l'API32 fonctionne



Oui, c'est quasiment pareil (__argv[] ou __wargv[] en Unicode) ou
GetCommandLine()
Mais GetModuleFileName() est en effet la façon standard "Win32"
Publicité
Poster une réponse
Anonyme