Tuer une tache

cs_Dagnir Messages postés 18 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 11 février 2009 - 1 mai 2003 à 11:10
deaphrothe Messages postés 10 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 8 août 2004 - 7 août 2004 à 16:13
Salut

J'ai vu 3-4 codes sur les forums sur comment terminer un processus, mais aucun d'eux n'étaient expliqués et (au rique de paraitre neuneu) j'ai pas réussi à m'en servir. Non parceque moi je veux bien des TERMINATE_PROCESS $0001 ou je ne sais quoi mais je n'ai aucune idée de ce que c'est et de comment je peux le modifier pour un usage "personalisé".

J'ai aussi trouvé

procedure TForm1.Button1Click(Sender: TObject);
begin
WinExec('C:\Windows\NotePad.exe', SW_SHOWNORMAL);
end;


et je me demandai s'il n'y avait pas un truc tout aussi simple pour fermer au lieu d'ouvrir. Sur le chat on m'a dit de remplacer par Application.Terminate le WinExec mais il y a "trop de paramètres originaux".

Parceque faire une procedure.KillProgram moi à la limite je veux bien mais apparemment c'est pas possible de mettre une procedure en dessous de
procedure TForm1.Button1Click(Sender: TObject);
parcequ'il dit "instructictions attendues mais procedure trouvée".

Si quelqu'un avait un truc net et relativement bien expliqué...

Dagnir

4 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
1 mai 2003 à 15:52
1/- tu ne précises pas si c'est ton programme que tu veux arrêter ou si c'est un programme externe.

2/- ton niveau nous laisse sceptiques si déjà tu ne sais pas comment écrire une procédure à l'intérieur d'une autre.

Alors, soit plus précis dans ta demande. Si tu ne sais pas ce que tu veux, personne ne pourra t'aider, nom de Zeus :approve)

May Delphi be with you
0
cs_Dagnir Messages postés 18 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 11 février 2009
1 mai 2003 à 17:11
1/ C'est un programme externe défini que je veux tuer sur un clic de bouton.

2/ J'ai commencé Delphi (et la programmation) depuis le week-end dernier, soit 4 ou 5 soirs dessus (durant lesquels j'ai plus fait de la "prise en main" : additions etc...). Donc je comprend que mon niveau fasse un trou dans le sol.

Pour les procédures l'une dans l'autre, j'ai demandé sur le chat et on m'a répondu que c'était un problème propre à Delphi, d'où ma question sur forum.

Dagnir
0
deaphrothe Messages postés 10 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 8 août 2004
7 août 2004 à 15:54
j'ai commencé le delphi il y a 4jours, j'arrive déja a créer une dll, géré les connections, toutes les options de base, gérer le registre, et bien d'autre encore... donc le temp que tu passe a apprendre un langage n'a pas vraiment d'importance exepté si c'est ton premier langage que tu apprends, mais alors jte conseil de commencer par autre chose que le delphi. Pour fermer une aplication que tu a lancer avant donc que tu en connais le nom, c'est le code suivant :
KillProgram(nil,'bloc note');

par exemple et tu place ça entre le begin et le end; du bouton que tu veux que ça fasse le code :)))
0
deaphrothe Messages postés 10 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 8 août 2004
7 août 2004 à 16:13
et voila la procedure a mettre plus haut :

procedure KillProgram(ClassName: PChar; Titre: PChar);
const
PROCESS_TERMINATE = $0001;
var
ProcessHandle : THandle;
ProcessID: Integer;
Appli : HWND;
begin
Appli := FindWindow(PChar(ClassName), PChar(Titre));
GetWindowThreadProcessID(Appli, @ProcessID);
ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
TerminateProcess(ProcessHandle,4);
end;
0
Rejoignez-nous