|
Unter Windows 95/98 gibt es den "Abgesicherten
Modus" ohne oder mit Netzwerkunterstützung. Da in diesem Modus
keinerlei Startdateien, also weder Config.sys und Autoexec.bat auf
DOS-Ebene, die unter den diversen "Run..."-Schlüsseln
in der Windows-Registrierung eingetragenen Anwendungen noch die im
AutoStart-Ordner des Startmenüs abgelegten Anwendungen gestartet
werden, mag die Feststellung des Startmodus für eine Anwendung
durchaus interessant sein. So kann sie beispielsweise "auf
einen Blick" feststellen, ob ansonsten automatisch gestartete
Hilfsprogramme überhaupt zur Verfügung stehen, ohne deren
Verfügbarkeit erst im einzelnen prüfen zu müssen.
Die API-Funktion GetSystemMetrics
liefert unter dem Index SM_CLEANBOOT die gewünschte Information.
Sie können den Rückgabewert direkt auswerten, eventuell verpackt
in eine den Sinn der Abfrage offensichtlicher erscheinen lassende
Eigenschaft in einem Standard-Modul ("BootMode"). Der
Rückgabewert entspricht einem der Werte der
BootModeConstants-Enumeration. Oder Sie "verteilen"
gewissermaßen die Abfrage auf drei spezialisierte
Eigenschaften-Prozeduren (Sie könnten natürlich auch Funktionen
verwenden), um einen erwarteten (oder auch nicht erwarteten)
Boot-Modus direkt zu prüfen.
Private Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long
Private Const SM_CLEANBOOT = &H43
Public Enum BootModeConstants
bmNormal
bmSafeMode
bmSafeModeNetwork
End Enum
Public Property Get BootMode() As BootModeConstants
BootMode = GetSystemMetrics(SM_CLEANBOOT)
End Property
Public Property Get BootModeNormal() As Boolean
BootModeNormal = _
CBool(GetSystemMetrics(SM_CLEANBOOT) = bmNormal)
End Property
Public Property Get BootModeSafe() As Boolean
BootModeSafe = _
CBool(GetSystemMetrics(SM_CLEANBOOT) = bmSafeMode)
End Property
Public Property Get BootModeSafeNetwork() As Boolean
BootModeSafeNetwork = _
CBool(GetSystemMetrics(SM_CLEANBOOT) = bmSafeModeNetwork)
End Property
|