ShellExecute

jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 - 6 févr. 2003 à 19:42
mickadevelop Messages postés 55 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 4 juin 2010 - 8 nov. 2005 à 15:46
Comment récupérer le handle d'un programme (d'une fenetre) lançé avec ShellExecute.

ShellExecute retourne un code de retour (pour la gestion des erreurs) mais ne retourne pas de Hwnd ou de PID.

Je voudrais pouvoir killer le process lançé par shellexecute à tout moment. Mais pour cela, il me faut un lien avec le programme lançé par ShellEsxecute. (il me faut, soit le Hwnd ou soit le PID de la fenetre).

Je sais faire avec Shell, mais avec l'API shellexecute, ça me semble infaisable...
Je commence à deséspéré...

Merci à ceux qui pourront m'aider

2 réponses

jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 2
7 févr. 2003 à 10:11
JE me répond tout seul... ;-))
J'ai enfin trouvé...

Il faut utiliser le grand frère de ShellExecute, c'est à dire ShellExecuteEx.
On lui passe une structure en paramètre et on récupère le champs hProcess de la structure... and that does the trick, on a carrément le hWnd du programme lançé par ShellExecuteEx.
On peut ainsi le killer facilement ou faire ce que l'on veut. ( quand on a le hWnd d'un fenetre Windows, on peut appliquer une quantité énorme d'API dessus et faire pleins de trucs)...
0
mickadevelop Messages postés 55 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 4 juin 2010
8 nov. 2005 à 15:46
Bonjour,
Je constate que ce message à été posté il y as un moment mais j'aurais voulu savoir comment on fait pour killer un process lancer par shell ou shellexecuteex.
Pour détailler un peu plus J'ai un programme avec une form et sur cette form j'ai un bouton qui me permet de lancer un autre programme (de ma composition aussi) et donc j'aimerais arreter l'execution de ce programme (grande boucle qui tourne sans fin) en clickant sur un bouton stop qui m'arreterais l'execution du programme lancé précedement.
Merci d'avance pour votre aide
mickadevelop
0
Rejoignez-nous