Benutzer-Werkzeuge

Webseiten-Werkzeuge


k15:k15.1:k15.1.3:start

15.1.3 Eigenschaft ScreenSaver – Klasse Desktop (gb.desktop)

Hinter der Eigenschaft Screensaver steht die Klasse _Desktop_ScreenSaver (gb.desktop). Die Klasse setzt Sie in die Lage, die Energieverwaltung und den Bildschirmschoner des Monitors zu verwalten. Diese virtuelle Klasse hat eine Eigenschaft Enabled und 5 Methoden (Activate, Lock, Reset, Resume und Suspend).

  • Die Wirkung der Prozedur Suspend(Window AS Window) besteht darin, die Bildschirmschoner-Funktion und die Energieverwaltung des Monitors außer Kraft zu setzen. Als Bedingung gilt: Das angegebene Fenster muss für die Dauer der Aussetzung/Unterbrechung existieren.
  • Der Bildschirmschoner kann im Zusammenhang mit mehreren Fenstern gleichzeitig ausgesetzt werden. In diesem Fall wird die Bildschirmschoner-Operation nur einmal wiederhergestellt.

Mit dem Aufruf der Methode Resume(Window AS Window) werden die Bildschirmschoner-Funktion und die Energieverwaltung des Monitors wieder aktiviert, nachdem sie ausgesetzt waren. Das als Parameter übergebene Fenster muss das gleiche sein, das bei einem vorangegangenen Aufruf der Methode Suspend(Window AS Window) wurde.

Nach dem Aufruf von Desktop.ScreenSaver.Suspend(FMain.Window) in einem Projekt-Quelltext erscheint diese Meldung in der IDE-Konsole:

lockfile: Forcing lock on "/tmp/xdg-screensaver-hans--0.0.lock"

mit dem Inhalt der Sperr-Datei /tmp/xdg-screensaver-hans–0.0:

52428803:7751

In einem Projekt wurden sowohl die Eigenschaft Enabled als auch die 5 Methoden (Activate, Lock, Reset, Resume und Suspend) eingesetzt, um deren Wirkung zu erproben.

B1

Abbildung 15.1.3.1: Projekt 'ScreenSaver'

Es folgt der komplette Quelltext, dessen wichtigste Passagen kommentiert werden:

[1] ' Gambas class file
[2] 
[3] Public Sub Form_Open()
[4]   Dim bFlag As Boolean
[5]   
[6]   FMain.Center
[7]   FMain.Resizable = False
[8]   Desktop.ScreenSaver.Suspend(FMain.Window)
[9] 
[10]   ' bFlag = Desktop.ScreenSaver.Enabled
[11]   ' If bFlag = True Then
[12]   '    Message.Info("Desktop-Bildschirmschoner eingeschaltet.")
[13]   ' Else
[14]   '    Message.Info("Desktop-Bildschirmschoner ausgeschaltet.")
[15]   ' Endif ' If bFlag = True ?
[16]   
[17] End ' Form_Open()
[18] 
[19] Public Sub btnDSSActivate_Click()
[20]   Desktop.ScreenSaver.Activate()  
[21] End ' btnDSSActivate_Click()  
[22] 
[23] Public Sub btnDSSLock_Click()
[24]   Desktop.ScreenSaver.Lock()
[25] End ' btnDSSLock_Click()
[26] 
[27] Public Sub btnDSSTest_Click()
[28]   Desktop.ScreenSaver.Resume(FMain.Window)
[29]   Desktop.ScreenSaver.Activate()
[30]   timerDSSWait.Delay = 1000 * 3
[31]   timerDSSWait.Start
[32] End ' btnDSSTest_Click()
[33] 
[34] Public Sub timerDSSWait_Timer()
[35]   Desktop.ScreenSaver.Reset()
[36]   Desktop.ScreenSaver.Suspend(FMain.Window)
[37]   timerDSSWait.Stop
[38] End ' timerWait_Timer()
[39] 
[40] Public Sub btnEnde_Click()
[41]   Desktop.ScreenSaver.Resume(FMain.Window)
[42]   Wait 0.05
[43]   FMain.Close
[44] End ' btnEnde_Click()
[45] 
[46] Public Sub Form_Close()
[47]    btnEnde_Click()
[48] End ' Form_Close()

Kommentar:

  • Die Zeilen 10-15 wurden auskommentiert, weil es eine Fehlermeldung gab: _Desktop_ScreenSaver.Enabled ist statisch.
  • Mit dem Aufruf der Methode in der Zeile 20 wird der Bildschirmschoner sofort eingeschaltet. Eine Sperrung hängt von den System-Einstellungen ab. Jede Aktivität schaltet den Bildschirmschoner sofort aus.
  • Die Methode in der Zeile 24 sperrt den Bildschirm sofort. Zum Entsperren wird das Benutzer-Passwort benötigt.
  • In den Zeilen 27 bis 38 wird der Bildschirm für eine definierte Zeitspanne eingeschaltet. Die hier fest vorgegebene Sperrzeit von 3 Sekunden wird über einen Timer eingestellt.
  • In der Prozedur in den Zeilen 40-48 ergab sich ohne ein 'Wait 0.05' ein Fehler in der IDE-Konsole (xdg-screensaver: Window 52428803 does not exist), weil das Formular nicht geschlossen werden darf, bevor der Bildschirmschoner wieder aktiviert wurde! Die kurze Wartezeit von 0,05 Sekunden scheint zu helfen.

Download

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k15/k15.1/k15.1.3/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge