Interception arret windows [Résolu]

Messages postés
17
Date d'inscription
mardi 6 avril 2004
Dernière intervention
4 novembre 2018
- 3 oct. 2010 à 17:13 - Dernière réponse :
Messages postés
17
Date d'inscription
mardi 6 avril 2004
Dernière intervention
4 novembre 2018
- 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
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
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é 90 internautes ce mois-ci

Commenter la réponse de Caribensila
Messages postés
17
Date d'inscription
mardi 6 avril 2004
Dernière intervention
4 novembre 2018
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
Messages postés
17
Date d'inscription
mardi 6 avril 2004
Dernière intervention
4 novembre 2018
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
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Dernière intervention
15 décembre 2014
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
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
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
Messages postés
17
Date d'inscription
mardi 6 avril 2004
Dernière intervention
4 novembre 2018
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
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Dernière intervention
15 décembre 2014
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
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
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
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
5 oct. 2010 à 16:10
0
Merci
Commenter la réponse de Caribensila
Messages postés
17
Date d'inscription
mardi 6 avril 2004
Dernière intervention
4 novembre 2018
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.