En quitant Windows !

Résolu
Seth77 Messages postés 571 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 - 12 févr. 2005 à 15:24
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 - 13 févr. 2005 à 17:49
Salut



j aimerais savoir si lorsque l on quitte windows alors qu une
application VB tourne, si dans l application VB un evenement est
capte avant que windows ferme l application avant de se fermer ?



Thx

Herve

11 réponses

Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 1
13 févr. 2005 à 17:49
Si tu veut bloquer la fermeture de windows, utilise l'api
AbortSystemShutdown, le nom de la machine qui doit être passé
comme argument peut être laissé vide ("") pour un systeme local.

Flachy Joe
3
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
12 févr. 2005 à 16:02
Salut Seth77,

Ca pourrait pas se faire avec l'événement Form_QueryUnload ou Form_Terminate ça ?
En le prenant sur ta fenêtre principale.

YOYO, @+.
YOYO
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 févr. 2005 à 16:07
Oui c'est les évènements QueryUnload et Unload de la feuille active



L'évènement QueryUnload arrive avant le déchargement de la feuille.

Unload arrive lors du déchargement de la fueille donc après QueryUnload



Les 2 te donne la possibilité d'annuler le déchargement, cependant l'annulation sur Unload n'empèche pas l'arret de Windows.



QueryUnload te permet de connaitre la cause du déchargement de la feuille (
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 févr. 2005 à 16:13
2 precisions :



1 - L'évènement QueryUnload (et donc Unload) n'est pas reçu si tu
utilise l'instruction End dans ton soft ou si tu ferme l'apli par le
bouton Fin de l'environement VB.



2 - Pour Yoyo et les autres, l'évènement Terminate arrive trop tard,
lorsque la feuille est effectivement déchargée, càd lorsqu'elle
n'existe plus en mémoire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
12 févr. 2005 à 16:21
Ah oui c'est vrai j'avais mal lu son message.
Si c'est avant que ça ferme, t'as pas vraiment le choix c'est QueryUnload ou Unload.
Et pour empêcher la fermeture de ton prog t'as juste à mettre Cancel = 1.
Par contre, je sais pas si ça va empêcher Windows de fermer.

YOYO, @+.
YOYO
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
12 févr. 2005 à 16:33
D'après le MSDN, Cancel=1 sur Unload n'empeche pas Windows de se fermer, c'est dit clairement.



Pour QueryUnload, on peut sous entendre que ça arrete la fermeture de
Windows mais ce n'est dit explicitement nulle part (là ou j'ai cherché
en tout cas ).



Il faudrait vérifier, mais je vais pas le faire car je perdrais la connection avec ce forum
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
12 févr. 2005 à 16:35
Merci pour l'info casy.

YOYO, @+.
YOYO
0
Seth77 Messages postés 571 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 4 mai 2020 1
12 févr. 2005 à 17:12
merci pour le infos!!

il me semble qu en mettant cacel=1 cela bloque la fermeture de windows.

Herve
0
cbnet Messages postés 176 Date d'inscription vendredi 29 octobre 2004 Statut Membre Dernière intervention 7 mars 2005
13 févr. 2005 à 08:18
J'ai pas testé mais je vais voir aussi parce que j'aimerai bien
savoir... Après tout un fichier non enregistré, dans Word par exemple,
déclenche une MsgBox pour proposer de l'enregistrer et c'est déclenché
par un évenement équivalent à QueryUnload (je dis équivalent parce que
bien sûr le word il est pas fait en vb...)

Par contre pour Terminate vous me laissez dubitatif, comment
l'évènement peut il s'enclencher si la feuille n'est déjà plus en
mémoire ?

@+
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
13 févr. 2005 à 08:56
Et bien je suis pas sûr que Word ne soit pas en VB.
Parce qu'il me semble avoir lu que VB et tous les outils office intéragissent très bien parce que justement ils sont eux ausi en VB.
Mais c'est à confirmer.

YOYO, @+.
YOYO
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
13 févr. 2005 à 10:25
Word était codé en C et ASM pour les versions Dos et 2c, puis en C et C++ jusqu'a au moins Off99. Depuis je ne sais pas.



Pour Terminate, ce n'est pas parce qu'il est associé à l'objet feuille
que cet évènement fait partie réellement de la feuille.Il peut très
bien faire partie du container de la feuille, objet nécessaire,
inaccéssible au programmeur en VB6, mais mis en place automatiquement
lors de la compilation et utiliser par l'OS pour pouvoir justement
créer la feuille.



Les objects que vous voyez en VB6, les form notamment, ne sont pas des
objects en tant que tel mais plutot des encapsulages (une interface)
des divers objets systèmes (VB6 n'autorisant pas la prog object). Y a
qu'a voir en VC6++ ou VB.NET (de ce que j'en vu pour l'instant) pour
avoir acces à toutes les propriétés d'une form comme en VB6, elles sont
réparties sous plusieurs objets. Même si en .NET le principe a
fondamentalement changé, la philosophie est tourjours là.



Pour une petite analogie (oui c'est dimanche, je me lache
), quand tu fais construire une maison, tu passe par un archi, c'est
lui qui fait l'interface pourtant ce n'est pas lui qui construit ta
maison, il y a le maçon , le charpentier, l'electricien,.......



Voila pour Dimanche matin, je commence fort, j'aurais du rester au lit moi






<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
0
Rejoignez-nous