[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Windows beenden / neu booten

Sprache / Programm: Access ab Version 2000 · VBA ab Office 95
Beschreibung

Mit diesem Code für den Zugriff auf die Windows API kann man von Access aus Windows 9x herunterfahren, neu starten oder Benutzer abmelden.

VBA-Quelltext
''' Version 1
Public Declare Function ShutDown Lib "User32" Alias "ExitWindowsEx" (ByVal _
    uFlags As Long, Optional ByVal dwreserved As Long = 0) As Long


''' Version 2
''' Etwas schöner (und umfangreicher) geht es In Access 2000
Public Enum ShutDownConst
    winLogOff = 0
    winExit = 1
    winReboot = 2
    winReset = 3
    winForceExit = 4
    winPowerOff = 8
End Enum

Public Declare Function ShutDown Lib "User32" Alias "ExitWindowsEx" (ByVal _
    uFlags As ShutDownConst, Optional ByVal dwreserved As Long = 0) As Long
Argumente der Funktion/Prozedur

uflags

Art des Abschlusses (siehe Codebeispiel)

Anwendungsbeispiel(e)...

In Access 95 und 97 wird der Rechner mit

ShutDown 2

neu gestartet. In Access 2000 sieht der Befehl so aus

ShutDown winReboot

Hinweis

Der Vorteil der Access 2000 Variante ist, dass schon bei der Eingabe des Befehls ShutDown in den Code sofort von IntelliSense die Optionen zur Auswahl gestellt werden.

In Klassen-, Formular- und Berichtsmodulen muss die Deklaration der API-Funktionen von Public in Private geändert werden.

Anwendungsgebiete, Fehler und Warnungen

Dieser Zugriff auf die Windows-API sollte nur in Ausnahmefällen angewendet werden. Zur Vorbereitung sollten im Code Befehle wie DBEngine.Idle und DoEvents mehrfach ausgeführt werden, damit sowohl die Datenbank als auch andere Programme Zeit haben, Prozesse abzuschließen.