19.7.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 die 5 Methoden (Activate, Lock, Reset, Resume und Suspend).

Nach dem Aufruf von Desktop.ScreenSaver.Suspend(FMain.Window) in einem Projekt 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.

ScreenSaver

Abbildung 19.7.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()

Kommentare:

Download