cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 16 févr. 2005 à 23:46
pourquoi mettre le code de terminaison a cet endroit si ca ne signifie
pas a coup sur que le programme va se terminer ?? alors que si le
programme se ferme, il y aura forcément un WM_ENDSESSION.
yserver
Messages postés203Date d'inscriptionlundi 2 août 2004StatutMembreDernière intervention 8 septembre 2006 17 févr. 2005 à 05:35
Il faut mettre le code de terminaison a cette endroit, car c'est avec cela que windows annonce qu'il va se fermer et que toutes les applications doivent en faire autant avt. Si tout est bien fait si aucune application ne fige ou refuse de repondre alors le system poursuit la fermeture avec WM_ENDSESSION.
Effectivement, il existe qq possibilité que ton appli se ferme pour rien (car une autre n'aura pas repondu correctement et tu n'y pex rien) et que la procedure de fermeture soit avortée. Mais, cela n'est plus ton pb et tu n'en est pas responsable. C'est qu'une des application qui tourne sur le PC est planté ou mal programmé.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 17 févr. 2005 à 12:00
ben moi jsuis pas convaincu, les applications ne se terminent pas,
elles sont terminées, c'est différent... une application qui recoit
WM_QUERYENDSESSION peut ne pas etre terminée par la suite (cf msdn;
alors rien ne sert d'executer un quelconque code, l'application va
potentiellement rester en vie), alors qu'une qui recoit WM_ENDSESSION
va être terminée a coup sur. en+ toutes les applications qui vont etre
terminées vont recevoir WM_ENDSESSION.... donc aucun interet a executer
le code ds WM_QUERYENDSESSION...
non??
Vous n’avez pas trouvé la réponse que vous recherchez ?
yserver
Messages postés203Date d'inscriptionlundi 2 août 2004StatutMembreDernière intervention 8 septembre 2006 17 févr. 2005 à 13:22
Telque je vois les choses, le sytem annonce qu'il va s'arreter et previent toutes les applications qu'il va s'arreter. Elles executent alors les instructions necessaire avant de se terminer, elles ont alors tous le temps necessaire pour accomplire leur tache sauvegarder tout ce qu'elles ont on a sauvegarder.... Tant qu'elles ne retourne rien le sytem patiente avant de finir la procedure.
Ensuite le sysem poursuit l'arret eet envoi endsession et la plus rien a faire la procedure est enclenche si ton appli a pas le tps de finir ce qu'elle avait a faire, le system s'en fiche et s'arrete.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 17 févr. 2005 à 13:34
j'ai testé, t'as tout le temps pour traiter le WM_ENDSESSION (testé
avec une dialogbox ...), si aucun code ne pouvait etre executé dedans,
le message ne serait jamais envoyé....
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 17 févr. 2005 à 13:36
ce qui m'ennuie c'est que t'as l'air si sur de toi alors que tu te
bases sur msdn (comme moi, et encore as tu tout bien lu?) et que tu
n'as pas fait de test... si tu t'es déja servi véritablement de ca,
alors ok, mais sinon ... j'attends pas une réponse d'astrologue,
j'attends un truc pseudo officiel.
yserver
Messages postés203Date d'inscriptionlundi 2 août 2004StatutMembreDernière intervention 8 septembre 2006 17 févr. 2005 à 15:57
Il ne s'agit nullement de voyance. Je te dit simplement ce que moi je lis et je comprend de mes connaissances, apres...
Tu a raison du le faite que WM_ENDSESSION te permet de traiter autant de tps que tu veux ensuite cf :
If the wParam parameter is TRUE, the session can end any time after all applications have returned from processing this message. Therefore, an application should perform all tasks required for termination before returning from this message.
Par contre on a aussi :
When an application returns TRUE for this message, it receives the WM_ENDSESSION message and it is terminated, regardless of how the other applications respond to the WM_QUERYENDSESSION message.
Apres j'ai pas tout lu MSDN c'est sur, j'ai deja tout lu Freud (de la main gauche bien sur) alors....
yserver
Messages postés203Date d'inscriptionlundi 2 août 2004StatutMembreDernière intervention 8 septembre 2006 17 févr. 2005 à 16:24
Ta remarque est vrai mais je n'est pas relevé car n'est valable que sur les postes en w9x.
Comme perso j'ai pas dans mon entourage des poste en 9x, et moi encore moi, comme en plus ca represente trop peut de poste en pourcentage. J'ai tendance a vite évacuer les remarque qui concerne autre chose que win NTx.