J'aurais besoin de pouvoir tuer via mon application Delphi, le processus d'Interbase. (Affiché en tant que "ibserver.exe" dans le gestionnaire des tâches).

J'ai essayé plusieurs bouts de code différents tels :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Procedure KillIBServer ;
Var Hwnd : Integer ;
      IBProcess : Integer ;
      ProcessHandle : THandle ;
Begin
  Hwnd := FindWindow(PChar('IB_Server'), nil) ;
  // Je récupere bien le handle correspondant à Interbase Server.
  GetWindowThreadProcessId(Hwnd, @IBProcess) ;
  // Je récupére le même PID que le processus apparaissant dans le gestionaire des tâches.
  ProcessHandle := OpenProcess(PROCESS_TERMINATE, False, IBProcess) ;
  // Ici la fonction me renvoit 0 (une erreur selon l'aide WIN32).
  TerminateProces(ProcessHandle, 0)) ;
end ;
Ou bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
  SendMessage(LeHandleIBServer, WM_CLOSE, 0, 0) ;
Qui ne fonctionne pas non plus.

Si quelqu'un à une idée de la manière dont je pourrais m'y prendre, ou de l'erreur que je commet dans mon code, je lui en serait fortement reconnaissant de m'aiguiller.