Fonction inverse de ShellExecute ?

Signaler
Messages postés
62
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
25 mai 2013
-
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
-
Bonjour à tous


Existe-t'il la fonction inverse de ShellExecute ?
Plus précisement : j'ai ouvert en utilisant ShellExecute une application toto externe à MonApplication.
ShellExecute(0,"open",'toto.exe',null,null,sw_shownormal).
Comment puis-je la refermer à partir de MonApplication (une fonction du genre ShellClose mais ça n'exite pas dans l'API) ?
Merci d'avance pour les idées
Gabriel

3 réponses

Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
vas voir :

Tuer une application



@+

jlen
Messages postés
62
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
25 mai 2013

Bonjour et merci pour la réponse.
Je suis allé sur le lien et j'ai essayé le petit bout programme Killprogram.
Après tatonnement, j'ai réussi à comprendre que la fonction FindWindow marchait avec le TITRE de la fenètre et non pas avec le nom et le chemin du fichier ouvert.
Ca ne simplifie pas le problème car le titre de le fenètre n'est pas toujours connu précisemment. Quelquefois il n'a strictement rien à voir avec le nom de l'exe, quelquefois il varie à chaque ouverture de l'exe (exemple les jeux qui affichent un numéro variable dans le titre de la fenètre), quelquefois il change en fonction de la langue. Bref, pas simple.
J'ai voulu essayé le bout de programme de ELGUEVEL (KillProcessBy Name) mais là, je merdouille car je ne trouve pas dans quelle librairie se trouve les fonctions de la TOOL HELP LIBRARY (exemple CreateToolHelp32Snapshot) sous Delphi7.
Cordialement
Gabriel
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
var
InfoProc : TProcessInformation ;
InfoStart : TStartupInfo ;


procedure TForm1.Button1Click(Sender: TObject);
var
Resultat : Boolean ;
begin
Infostart.cb := sizeof(TStartupInfo);
Resultat := CreateProcessA
( 'project1.exe'
, 'd:\borland\delphi\projects'
, NIL
, NIL
, TRUE
, NORMAL_PRIORITY_CLASS
, NIL
, NIL
, InfoStart
, InfoProc
) ;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
TerminateProcess( InfoProc.hProcess, 0 ) ;
end;

Cordialement.



<HR>



Il existe 10 catégories de personne. Ceux qui connaissent le binaire et les autres...