Gestion de la fermeture de l'application par CTRL ALT SUPP

Résolu
cs_phiphilou Messages postés 2 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 31 janvier 2005 - 31 janv. 2005 à 18:53
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Derniè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.

4 réponses

ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
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 !
3
cs_phiphilou Messages postés 2 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 31 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).
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
31 janv. 2005 à 23:07
J'ai essayé en écrivant dans un fichier texte à partir du bloc finalization et ça a marché quand j'ai arrêté le prog avec Ctrl+Alt+Suppr


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
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.

fabiin proposait une manière de faire...

===========
Validez les réponses si ok...

ViewVite : HTML
0
Rejoignez-nous