Afsluiten
Er zijn drie manieren waarop een toepassing lokale of externe computers kan afsluiten:
- het systeem afsluiten
- sluit het systeem af en start het opnieuw op
- sluit de toepassing af, sluit het systeem af en start het opnieuw op en start alle toepassingen die zijn geregistreerd voor opnieuw opstarten
Als u het systeem wilt afsluiten, gebruikt u de functie ExitWindowsEx met de vlag EWX_SHUTDOWN. Zie voor een voorbeeld Het systeem afsluiten. Gebruik de vlag EWX_REBOOT om het systeem af te sluiten en opnieuw op te starten. Als u alle toepassingen die zijn geregistreerd voor opnieuw opstarten opnieuw wilt starten met behulp van de registerApplicationRestart functie, gebruikt u de vlag EXW_RESTARTAPPS.
De InitiateShutdown, InitiateSystemShutdownen InitiateSystemShutdownEx-functies starten een timer en geven een dialoogvenster weer waarin de gebruiker wordt gevraagd zich af te melden. Terwijl dit dialoogvenster wordt weergegeven, kan de functie AbortSystemShutdown de timer stoppen en voorkomen dat de computer wordt afgesloten. Als de timer echter verloopt, wordt de computer afgesloten. Deze functies kunnen de computer ook opnieuw opstarten na een afsluitbewerking. Zie Het dialoogvenster Afsluiten weergevenvoor meer informatie.
Meldingen voor afsluiten
Toepassingen met een venster en berichtenwachtrij ontvangen afsluitmeldingen via de WM_QUERYENDSESSION en WM_ENDSESSION berichten. Deze toepassingen moeten TRUE- retourneren om aan te geven dat ze kunnen worden beëindigd. Toepassingen mogen het afsluiten van het systeem niet blokkeren, tenzij dit absoluut noodzakelijk is. Toepassingen moeten een vereiste opschoning uitvoeren tijdens het verwerken van WM_ENDSESSION. Toepassingen met niet-opgeslagen gegevens kunnen de gegevens opslaan op een tijdelijke locatie en deze herstellen wanneer de toepassing de volgende keer wordt gestart. Het wordt aanbevolen dat toepassingen hun gegevens en status regelmatig opslaan; Sla bijvoorbeeld automatisch gegevens op tussen opslagbewerkingen die door de gebruiker zijn geïnitieerd om de hoeveelheid gegevens te verminderen die tijdens het afsluiten moet worden opgeslagen.
Consoletoepassingen ontvangen afsluitmeldingen in hun handlerroutines. Als u een consolehandler wilt registreren, gebruikt u de functie SetConsoleCtrlHandler.
Servicetoepassingen ontvangen afsluitmeldingen in hun handlerroutines. Als u een handler voor servicebeheer wilt registreren, gebruikt u de functie RegisterServiceCtrlHandlerEx.
Afsluiten blokkeren
Als een toepassing een potentiële systeemuitschakeling moet blokkeren, kan deze de functie ShutdownBlockReasonCreate aanroepen. De aanroeper biedt een redentekenreeks die aan de gebruiker wordt weergegeven. De reden moet kort en duidelijk zijn, zodat de gebruiker de benodigde informatie krijgt om te beslissen of ze doorgaan met het afsluiten van het systeem.
Verwante onderwerpen