Seth77
Messages postés571Date d'inscriptionmardi 30 avril 2002StatutMembreDernière intervention 4 mai 2020
-
12 févr. 2005 à 15:24
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 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 ?
Flachy Joe
Messages postés2103Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention21 novembre 20231 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.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 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.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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
cbnet
Messages postés176Date d'inscriptionvendredi 29 octobre 2004StatutMembreDerniè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 ?
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 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.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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.