(win32) Quel est le fichier exécuté ?

mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023 - 9 sept. 2007 à 19:39
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 9 sept. 2007 à 23:34
Bonjour,

disons, que j'ai 2 fichiers exe avec le même nom qui affiche la même chose mais situés dans 2 dossiers differents :
c:\test01\test01.exe

c:\test02\test02.exe

(avec test01.exe = test02.exe, test02 est seulement test01 renommé)

j'aimerais savoir comment savoir le(s)quel(s) sont éxécutés, car FindWindow ne peut m'aider dans ce cas

merci

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 sept. 2007 à 19:47
GetModuleFilename()

ciao...
BruNews, MVP VC++
0
mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023
9 sept. 2007 à 21:08
GetModuleFilename retourne le nom du fichier qui est en cours d'exécution, non ?

si j'ai un 3eme programme qui veut savoir, si c'est test01 ou test02 qui est exécuté....
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 sept. 2007 à 21:18
A quel moment ?
Faudra prévoir un mode de communication inter processus.

ciao...
BruNews, MVP VC++
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
9 sept. 2007 à 21:40
Tu chopes le handle de la fenêtre que tu veux tester (avec EnumWindows par ex.);
Tu récupères le pID (GetWindowThreadProcessId);
Tu ouvres le processus (OpenProcess, mode READ et QUERRY_INFO)
Tu chopes le handle du module de base (EnumProcessModules);
Et enfin tu utilises GetModuleFileName pour avoir le nom complet.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
9 sept. 2007 à 22:09
Salut,
juju12 >> GetModuleFileName() ne fonctionne qu'avec le processus courant. Il faudra plutôt utiliser GetModuleFileNameEx(). Pour trouver le handle de la fenêtre, FindWindow() ou FindWindowEx() peuvent suffire. L'utilisation de EnumWindows() est moins pratique.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 sept. 2007 à 22:31
OK mais tout ceci est bien lourd pour une si petite info.
L'exécuté pourrait retourner son nro de version et lanceur lirait GetExitCodeProcess() ou l'exécuté écrirait l'info dans un fichier que lanceur irait lire.

ciao...
BruNews, MVP VC++
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
9 sept. 2007 à 23:34
raccp >> oui désolé; pour FindWindow, bah ca dépend à partir de quoi on cherche la fenêtre. Si on n'a rien d'autre que le nom du processus...
Brunews >> peut-être n'a-t'il pas accès au code source de l'exécutable, par ex. chercher si un processus qui a le nom d'un processus système n'est pas un virus qui a emprunté le nom...
0
Rejoignez-nous