Avatar billede madsbrodersen Nybegynder
11. november 2003 - 13:23 Der er 10 kommentarer og
1 løsning

fange shutdown/reboot/logoff fra winlogon

Er der nogen der ved hvordan jeg kan opfange når windows lukkes ned, rebootes eller bruger logger af. Denne information skal jeg bruge i mit program (VB 6) hvor den event skal stoppes, derefter udføres forskellige ting, hvorefter programmet selv sender shutdown/reboot/logoff alt efter hvad bruger tidligere valgte.
Avatar billede tjacob Juniormester
11. november 2003 - 13:57 #2
Jeg er lige ved at tro, at du blot kan lægge din kode i
Unload (form eller sub Main) eventet. Sålænge der afvikles
kode TROR jeg at din app. sender False til WM_QUERYENDSESSION
(se ovenstående links).
Avatar billede tjacob Juniormester
11. november 2003 - 14:00 #3
Du kunne jo prøve at lægge en msgbox i Unload, lukke windows
og se om du standser shutdown indtil der er trykket OK i msgboxen.
Avatar billede madsbrodersen Nybegynder
11. november 2003 - 14:07 #4
Ja - men det løser jo ikke mit problem med at skelne mellem en shutdown, reboot eller logoff. (i øvrigt giver det også en pop-up med at programmet ikke svarer)
Avatar billede tjacob Juniormester
11. november 2003 - 14:14 #5
Pop-uppen er vel ligegyldig? Den 'gør' ikke noget, og forsvinder af sig
selv når din kode er afviklet.

MHT at skelne mellem forskellige typer shutdown:
Det har bruger jo allerede valgt, og den type shutdown der er
valgt fortsætter efter afvikling af din kode.
Avatar billede tjacob Juniormester
11. november 2003 - 14:31 #6
PopUp vinduet kan måske være et problem alligevel  ;-)

Hvis bruger siger 'slut nu', så afvikles din kode jo IKKE.

Så er der nok ikke anden vej end ExitWindows funktionen, og
de ovenstående links.
Avatar billede tjacob Juniormester
11. november 2003 - 14:34 #7
På den anden side:  Din kode tager vel ikke flere sekunder
at afvikle? Det kan være at bruger slet ikke 'når' at se
PopUppen.
Avatar billede madsbrodersen Nybegynder
11. november 2003 - 14:39 #8
Problemet er at jeg har lavet en logon/logoff/alm.vedligeholdelse-applikation der bl.a. kører på bærbare maskiner. Den udfører forskellige ting alt efter hvilke grupper en bruger er medlem af og hvad status på netværket er (ISDN, alm. modem, gprs, adsl, ethernet-LAN, tokenring-LAN eller ingen netværk). Derfor kan det godt tage lidt tid at køre en logoff (tester om der er ny software der skal installeres etc.)
Avatar billede tjacob Juniormester
11. november 2003 - 14:43 #9
OK, så skal du nok i gang med ExitWindows.
Jeg har desværre ikke tid til at studere den lige nu ;-)
-der må andre eksperter på banen.
Avatar billede madsbrodersen Nybegynder
13. november 2003 - 14:27 #10
Jeg tror at jeg bliver nødt til at lave min egen Winlogon Notification Package - det burde så vidt jeg kan se løse problemet:

http://www.codeproject.com/system/winlogon_notification_package.asp?df=100&forumid=1802&fr=26#xx39096xx

Det jeg får af info fra WM_ENDSESSION og WM_QUERYENDSESSION er jo kun besked om at der forsøges at logge af/shutdown/reboot - jeg kan desværre ikke skelne typerne
Avatar billede sjh Nybegynder
14. november 2003 - 22:35 #11
Måske er den kode her lidt nemmer...

http://www.vb-helper.com/howto_see_why_form_closing.html

så kan du prøve at sætte "Cancel = 1" og se om du kan lukke dit program.. :D

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Select Case UnloadMode
        Case vbFormControlMenu
            MsgBox Caption & ": Close command from Control " & _
                "menu or X button."
        Case vbFormCode
            MsgBox Caption & ": Unload statement from code."
        Case vbAppWindows
            MsgBox Caption & ": Windows session ending."
        Case vbAppTaskManager
            MsgBox Caption & ": Task Manager close."
        Case vbFormMDIForm
            MsgBox Caption & ": MDI parent is closing."
    End Select
    Cancel = 1
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester