Interception arret windows [Résolu]

dc46 14 Messages postés mardi 6 avril 2004Date d'inscription 24 juillet 2013 Dernière intervention - 3 oct. 2010 à 17:13 - Dernière réponse : dc46 14 Messages postés mardi 6 avril 2004Date d'inscription 24 juillet 2013 Dernière intervention
- 5 oct. 2010 à 17:48
Bonjour,
J'ai écrit un programme résident en try-icon qui fonctionne parfaitement.
Quand l'utilisateur quitte Windows celui-ci refuse de se terminer si le programme en question n'a pas été quitter.
Les autres programmes se fermant automatiquement sur un arrêt je suppose que Windows émet un signal qu'il est possible d'intercepter afin de libérer la mémoire. Si oui, lequel et comment. Je développe en Delphi.
Merci pour votre aide.

 dc46 like Delphi
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Caribensila 2684 Messages postés jeudi 15 janvier 2004Date d'inscription 26 juillet 2018 Dernière intervention - 3 oct. 2010 à 18:05
3
Merci
Salut,

Windows envoie le Message WM_QUERYENDSESSION.
A la reception de celui-ci, ton application doit simplement se fermer proprement.

Merci Caribensila 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Caribensila
dc46 14 Messages postés mardi 6 avril 2004Date d'inscription 24 juillet 2013 Dernière intervention - 4 oct. 2010 à 08:20
0
Merci
Bonjour et merci pour l'information, je la teste dès que possible.


 dc46 like Delphi
Commenter la réponse de dc46
dc46 14 Messages postés mardi 6 avril 2004Date d'inscription 24 juillet 2013 Dernière intervention - 4 oct. 2010 à 12:12
0
Merci
Bonjour,
En progrès.
Je ferme bien mon application, mais l'arrêt de Windows ne s'achève pas.
Je dois le relancer bien que je charge msg.result à 1 avant de fermer mon programme.
Qu'ai je oublié?
 dc46 like Delphi
Commenter la réponse de dc46
cs_MAURICIO 2233 Messages postés mardi 10 décembre 2002Date d'inscription 15 décembre 2014 Dernière intervention - 4 oct. 2010 à 13:31
0
Merci
Salut cari/dc46,

c' est en effet quelques chose que tout programmeur devrait gérer! Il devrait carrément être dispo dans un événement du compo TApplicationEvents !!!

Dans le même esprit, y a t-il un moyen de dire à Windows d' attendre un certains temps pour que notre appli puisse finir une tâche par exemple?

A+
Commenter la réponse de cs_MAURICIO
Caribensila 2684 Messages postés jeudi 15 janvier 2004Date d'inscription 26 juillet 2018 Dernière intervention - 4 oct. 2010 à 22:54
0
Merci
Salut Mauricio,

« y a t-il un moyen de dire à Windows d' attendre un certains temps »

Tu sais comme moi que Windows collabore avec le programmeur si celui-ci sait lui parler avec tendresse. Chuchote-lui: AbortSystemShutdown pour voir... et espère :)

@ dc46
A tout hasard... as-tu essayé de le faire hors de l'IDE ?
Commenter la réponse de Caribensila
dc46 14 Messages postés mardi 6 avril 2004Date d'inscription 24 juillet 2013 Dernière intervention - 5 oct. 2010 à 09:48
0
Merci
Bonjour à tous,
En fait, si je suis dans l'IDE l'arrêt de Windows se fait parce que je reçoit le message 'Session de débogage en cours' et que dans ce cas l'IDE se charge de libérer mon programme et que l'IDE se libère correctement.
Mon problème survient quand je suis hors de l'IDE.
Si on se fit à Microsoft la logique voudrais que sur WM_QueryEndSession le programme réponde qu'il accepte la fermeture, et qu'il se ferme lorsqu'il reçoit WM_EndSession.
J'ai essayé plusieurs solutions et je suis toujours bloqué à ce niveau.
Pour avancer je vais prendre le temps de faire une version épurer du programme que je mettrais en ligne a moins que vous n'ayez un exemple simple et fonctionnel.
Merci en attendant de votre intérêt pour ce message.
Je ne sait pas si mon adresse eMail est en ligne, mais vous pouvez me contacter a dcavarroc@gmail.com .

 dc46 like Delphi
Commenter la réponse de dc46
cs_MAURICIO 2233 Messages postés mardi 10 décembre 2002Date d'inscription 15 décembre 2014 Dernière intervention - 5 oct. 2010 à 14:24
0
Merci
Salut dc46,

j' ai le même souci que toi et je vais essayer de voir comment le résoudre ...

A+
Commenter la réponse de cs_MAURICIO
Caribensila 2684 Messages postés jeudi 15 janvier 2004Date d'inscription 26 juillet 2018 Dernière intervention - 5 oct. 2010 à 15:58
0
Merci
Je suis tombé la-dessus. Vous y trouverez peut-être du grain à moudre...
Commenter la réponse de Caribensila
Caribensila 2684 Messages postés jeudi 15 janvier 2004Date d'inscription 26 juillet 2018 Dernière intervention - 5 oct. 2010 à 16:10
0
Merci
ça aussi.
Commenter la réponse de Caribensila
dc46 14 Messages postés mardi 6 avril 2004Date d'inscription 24 juillet 2013 Dernière intervention - 5 oct. 2010 à 17:48
0
Merci
Re bonjour,
Suite a mon message de ce matin,
j'ai donc épuré un maximum et je me suis construit un programme 'dcResid' qui s'installe en Trayicon, que l'on peut ouvrir par le popup (Click droit de la souris sur l'icône de la trayicon) et que l'on peu fermer par la même méthode. Pour faire sympa j'ai l'icône qui change selon que le programme est visible ou non.
Eh bien ça marche.
Le programme se ferme bien, et windows termine sa fermeture.
Il ne me reste plus qu'à isoler les éléments ou les objets de mon programme qui crée le problème. Peut-être un thread mal stoppé?
Comme promis je vais mettre 'dcResid' en ligne pour ceux qui veulent une base fonctionnelle, dès que j'aurais compris comment m'y prendre. C'est ma première mise en ligne.
A+ de lire vos commentaires et suggestions.

 dc46 like Delphi
Commenter la réponse de dc46

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.