cs_phiphilou
Messages postés2Date d'inscriptionjeudi 10 avril 2003StatutMembreDernière intervention31 janvier 2005
-
31 janv. 2005 à 18:53
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 2006
-
2 févr. 2005 à 16:30
Salut à tous,
J'ai une application trois tier Midas qui pose un problème en exploitation. Il arrive que l'utilisateur kille le programme client ( et oui y a des bugs!) mais mon serveur reste actif et connecté à la base.
Je souhaiterai intercepter le message Windows qui provoque la fermeture de l'application cliente lorsque l'on tue le processus pour terminer proprement le serveur. Je n'arrive pas à déterminer quel est ce message ou quel est l'évènement appellé.
Merci d'avance.
A voir également:
Gestion de la fermeture de l'application par CTRL ALT SUPP
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 31 janv. 2005 à 19:48
Tu n'as pas besoin d'utiliser les messages Windows... Il te suffit simplement de rajouter des blocs "Initialization" et "Finalization" dans ton Unit et le tour est joué !
Exemple :
Implementation
procedure __________;
begin
[...]
end;
procedure __________;
begin
[...]
end;
initialization // Opérations à effectuer au début de programme (ce bloc peut être vide)
finalization // Opérations à effectuer à la fin du programme, même si fermé avec Ctrl+Alt+Suppr (ce bloc peut également être vide)
end. // La fin de l'unit
@+
Bonne Prog'
Nico
<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
cs_phiphilou
Messages postés2Date d'inscriptionjeudi 10 avril 2003StatutMembreDernière intervention31 janvier 2005 31 janv. 2005 à 22:01
Merci mais d'après l'aide Delphi les instructions du bloc finalization sont executées que lorsque le programme se termine normalement et non avec la méthode Halt ( lancé quand on fait Ctrl Alt Suppr).
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 2 févr. 2005 à 16:30
Un code de yvesmoreau permet de désactiver le Ctrl+Alt+Suppr... A voir.
Si FINALIZATION est exécuté, c'est parce que initialement Windows tente une fermeture par la croix (en haut à droite pour les intimes, et non pas par le saint-esprit). L'application se ferme évidemment normalement (l'application est en état IDLE) et FINALIZATION est exécuté naturellement.
Mais si l'application ne se ferme pas (no réponses), alors Windows se vénère un max et sort l'outil impitoyable qu'est le TERMINATEPROCESS de Kernel32.dll. Même les antivirus ne résistent pas, mais comme leur VXD restent esseulé dans le fond de l'ordi, on a le droit à de merveilleuses cascades d'écrans bleus.