Lancer un programme

Signaler
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Salut,
Je voudrais executer un programme (Notepad.exe ou calc.exe par exemple) à partir de mon programme C/Win32. Je voudrais aussi que la fonction qui execute puisse retourner un handle sur la fenêtre principale du programme.
J'ai pensé à ShellExecute et CreateProcess, mais, à moins d'être passé à côté de la plaque, ces fonctions ne retournent pas de handle sur la fenêtre principale, seulement des pid et des handles sur les threads au mieux.
Une telle fonction existe? ou dois-je obligatoirement utiliser FindWindow?

Merci

De la part d'un .net fan qui s'interesse à Win32 ces jours-ci
[:D] @++

4 réponses

Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
Pourquoi ne fais-tu pas un CreateProcess suivi d'un GetActiveWindow?
Neo_Fr
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
C'est EnumWindows qui doit suivre CreateProcess.

ciao...
BruNews, MVP VC++
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008

Si je comprends bien ton intervention BruNews, je devrais utiliser GetWindowThreadProcessId sur les handles retournés par EnumWindows et vérifier si le pid (process ID) du process que j'ai lancé (notepad.exe par exemple) est le même retourné par GetWindowThreadProcessId.

En pseudo-code, ça donne qqchose du genre:

While(hWnd = EnumWindows)      if(GetWindowThreadProcessId(hWnd) notepadPID) hWnd_Que_Je_Cherche hWnd;

Pour Neo_Fr, msdn donne ça pour GetActiveWindow :
"The GetActiveWindow function retrieves the window handle to the active window attached to the calling thread's message queue."
Si j'ai compris, ça retourne juste un handle pour la fenêtre active attachée au thread courant.

Merci à vous deux.
[:D] @++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
Exemple ici:
http://www.cppfrance.com/code.aspx?id=23024

ciao...
BruNews, MVP VC++