Tipp 0345 Bildschirmschoner de-/aktivieren
Autor/Einsender:
Datum:
  Alexander Csadek
12.07.2003
Entwicklungsumgebung:   VB 6
Mit der API-Funktion SystemParametersInfo kann etliches im Windows-System eingestellt werden. Dieser Tipp beschäftigt sich mit dem Bereich Bildschirmschoner.
Entsprechende Konstanten lassen es zu, den Bildschirmschoner de- bzw. zu aktivieren. Dies bedeutet jetzt nicht den Bildschirmschoner zu starten, sondern ob einer nach der Wartezeit gestartet werden soll. Die Konstante SPI_SETSCREENSAVEACTIVE wird zum Setzen des Status und die Konstante SPI_GETSCREENSAVEACTIVE zum Auslesen verwendet.
Mit der gleichen API-Funktion kann auch die Wartezeit ausgelesen bzw. gesetzt werden. Zu beachten ist, dass die Wartezeit in Sekunden angegeben wird. Zum Auslesen der Wartezeit wird die Konstante SPI_GETSCREENSAVETIMEOUT und die Konstante SPI_SETSCREENSAVETIMEOUT zum Setzen verwendet.
 
Option Explicit

Private Declare Function SystemParametersInfo Lib "user32" _
      Alias "SystemParametersInfoA" (ByVal uAction As Long, _
      ByVal uParam As Long, ByRef lpvParam As Any, _
      ByVal fuWinIni As Long) As Long

Private Const SPI_GETSCREENSAVETIMEOUT = 14
Private Const SPI_SETSCREENSAVETIMEOUT = 15

Private Const SPI_GETSCREENSAVEACTIVE = 16
Private Const SPI_SETSCREENSAVEACTIVE = 17

Private Function GetScreenSaverActive() As Boolean
  Dim lngRetVal As Long
  Dim blnAktiv As Boolean

  lngRetVal = SystemParametersInfo( _
        SPI_GETSCREENSAVEACTIVE, 0, blnAktiv, 0)
  GetScreenSaverActive = blnAktiv

  If lngRetVal = 0 Then
    MsgBox "Fehler beim Abfragen vom ScreenSaverState !", _
          vbInformation
  End If
End Function

Private Sub SetScreenSaverActive(ByVal Active As Boolean)
  Dim lngRetVal As Long

  lngRetVal = SystemParametersInfo( _
        SPI_SETSCREENSAVEACTIVE, Active, ByVal 0, 0)
  If lngRetVal = 0 Then
    MsgBox "ScreenSaverState konnte nicht gesetzt werden !", _
          vbInformation
  End If
End Sub

Private Function GetScreenSaverTimeout() As Integer
  Dim lngRetVal As Long
  Dim intTimeout As Integer

  lngRetVal = SystemParametersInfo( _
        SPI_GETSCREENSAVETIMEOUT, 0, intTimeout, 0)
  GetScreenSaverTimeout = intTimeout

  If lngRetVal = 0 Then
    MsgBox "Fehler beim Abfragen vom ScreenSaverTimeout !", _
          vbInformation
  End If
End Function

Private Sub SetScreenSaverTimeout(ByVal Timeout As Integer)
  Dim lngRetVal As Long

  lngRetVal = SystemParametersInfo( _
        SPI_SETSCREENSAVETIMEOUT, Timeout, ByVal 0, 0)

  If lngRetVal = 0 Then
    MsgBox "ScreenSaverTimeout konnte nicht gesetzt werden !", _
          vbInformation
  End If
End Sub
 
Hinweis für VBA-Anwender
Der hier abgebildete Code funktioniert auch in einem VBA-Projekt, dieser muss dazu lediglich in den VB-Editor der entsprechenden Anwendung kopiert werden. Ein Import der im Download enthaltenen *.frm-Datei ist nicht möglich.
Weitere Links zum Thema
Bildschirmschoner
Bildschirmschoner in DirectX 7

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (3 kB) Downloads bisher: [ 1379 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Montag, 15. August 2011