[VB6] Detecteren wanneer windows afsluit

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

  • iznogood
  • Registratie: September 2001
  • Niet online
Is het mogelijk om met vb6 te detecteren wanneer windows afsluit? Het is namelijk de bedoeling dat ik op dat moment een aantal settings opsla.

Op het moment dat ik detecteer dat windows afsluit, heb ik dan nog tijd genoeg om de settings te saven ? ( duurt nog geen 500ms gok ik )

Subclassing ben ik geen held in dus ik zou niet weten hoe ik dat zou kunnen doen.

Got search + google hebben niks opgeleverd.

[ Voor 21% gewijzigd door iznogood op 14-03-2005 15:07 ]

Just as Good


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Windows stuurt een bericht naar alle top level vensters dat er wordt afgesloten. Windows wacht op een antwoord, dus tijd om op te slaan is er. Volgens mij kun je zelfs Windows tegen houden met afsluiten.

Zie hier.

[ Voor 24% gewijzigd door jelmervos op 14-03-2005 15:12 ]

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 09-05 14:25

Tukk

De α-man met het ẞ-brein

Anders heb je het Form_Unload event nog.

Windows wacht tot je app is afgesloten, de tijd dat windows wacht is geconfigureerd in het registry.
Tegen Taskmanager -> End Process doe je weinig.

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.


  • iznogood
  • Registratie: September 2001
  • Niet online
Kaassoevlee schreef op maandag 14 maart 2005 @ 15:11:
Windows stuurt een bericht naar alle top level vensters dat er wordt afgesloten. Windows wacht op een antwoord, dus tijd om op te slaan is er. Volgens mij kun je zelfs Windows tegen houden met afsluiten.

Zie hier.
Ja, inderdaad ik moet het afsluiten dan wel tegenhouden, want op het moment dat dit gedetecteerd wordt heb ik denk ik geen tijd mee om het op te slaan.

Is het mogelijk om gewoon Form_unload te gebruiken ja ??

End Process in taskmanager hoeft niet ondervangen te worden.

[ Voor 5% gewijzigd door iznogood op 14-03-2005 15:17 ]

Just as Good


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Ik bedoelde dat je de afsluit procedure van Windows geheel stopt, dus Windows sluit dan ook niet af.

Windows wacht sowieso tot er antwoord is gegeven op het WM_QUERYENDSESSION bericht. Dit is dus precies wat jij zoekt.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • iznogood
  • Registratie: September 2001
  • Niet online
Kaassoevlee schreef op maandag 14 maart 2005 @ 15:18:
Ik bedoelde dat je de afsluit procedure van Windows geheel stopt, dus Windows sluit dan ook niet af.

Windows wacht sowieso tot er antwoord is gegeven op het WM_QUERYENDSESSION bericht. Dit is dus precies wat jij zoekt.
Maar als form unload gebruikt kan worden doe ik dat liever, de WM_QueryEndSession is in ieder geval een goede oplossing :)

Just as Good


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 00:08
Dat is volgens mij ook precies dé manier in VB6 :P

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


Verwijderd

Kunt beter de Query_Unload gebruiken. Als een top level window gesloten gaat worden gaat dit event af om je in staat te stellen settings en dergelijke op te slaan (heee!)

Het event heeft ook nog een byref parameter Cancel. Indien je deze op true zet wordt je applicatie niet afgesloten. Afsluiten via taskmanager (althans via het tabblad Processen) helpt niet, dan wordt je proces gewoon de nek omgedraaid.

  • iznogood
  • Registratie: September 2001
  • Niet online
Werkt inmiddels perfect ! Heb form_unload gebruikt. De settings worden goed opgeslagen :) Thanks everybody!

Just as Good

Pagina: 1