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 :
Ou bien :
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 ;
Qui ne fonctionne pas non plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SendMessage(LeHandleIBServer, WM_CLOSE, 0, 0) ;
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.![]()






Répondre avec citation
Partager