|
Visual Basic & Access (VBA) Windows beenden bzw. Neustart
In einigen Programmen z.B. bei Installationsroutinen, sieht man, daß Windows automatisch heruntergefahren oder neu gestartet werden kann. Geht das auch mit Visual Basic?
Lösung:
Für diese Funktion benötigen wir die Windows API - Funktion
ExitWindows und die entsprechenden Konstanten.
Deklarationsteil:
Const EXW_LOGOFF = 0
' Anwender lokal und im Netz abmelden, neues Anmeldefenster zeigen
Const EXW_SHUTDOWN = 1 ' Herunterfahren
bis zur Meldung: "Sie können den Computer nun ausschalten"
Const EXW_REBOOT = 2 '
Windows neu starten (booten).
Const EXW_FORCE = 4 '
Programmende aller Applikationen erzwingen (ohne Sicherheitsabfrage)
Const EXW_POWEROFF = 8 ' Neu:
Herunterfahren und Rechner ausschalten,
' falls der Rechner das unterstützt
Private Declare Function ExitWindowsEx Lib "user32"
_
(ByVal uFlags As Long, _
ByVal dwReserved As Long) As Long
Beispiele für den Aufruf der Funktion:
'
' Alle laufenden Tasks beenden
und Windows herunterfahren:
'
Call ExitWindowsEx(EXW_SHUTDOWN Or EXW_FORCE, 0&)
'
' Windows neu starten (reboot).
' Windows bekommt Gelegenheit,
bei laufenden Programmen die bekannte Frage zu stellen:
' "Möchten sie dieses
Programm wirklich beenden?"
' Dazu wurde die Konstante
EXW_FORCE entfernt und EXW_SHUTDOWN durch EXW_REBOOT ersetzt.
'
Call ExitWindowsEx(EXW_REBOOT, 0&)
|