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.
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: