Rubrik: System/Windows · Desktop/Bildschirm/Display | VB-Versionen: VB2005, VB2008 | 23.05.08 |
Bildschirmschoner ermitteln und starten Es wird der Pfad des eingestellten Bildschirmschoners aus der Registrierdatenbank ermittelt. Falls der Pfad vorhanden ist wird der Screensaver gestartet. | ||
Autor: Heinz Prelle | Bewertung: | Views: 12.391 |
www.visual-basic5.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit nachfolgender Klasse lässt sich der im System eingestellte Bildschirmschoner ermitteln. Weiterhin wird der Bildschirmschon anschließend autom gestartet.
Erstellen Sie ein neues Windows-Forms Projekt, platzieren auf die Form einen Button (Button1) und fügen nachfolgende Code in den Codeteil der Form ein:
Imports Microsoft.Win32 Public Class Form1
''' <summary> ''' Klasse zur Ermittlung des Bildschirmschoner-Pfades aus der ''' Registrierdatenbank. ''' </summary> Private Class GetScreenSaverPath ' Hinweis: Der Eintrag - SCRNSAVE.EXE - ist nur vorhanden wenn zuvor ' ein Screensaver definiert wurde. Private Const ValueName As String = "SCRNSAVE.EXE" ''' <summary> ''' Übergibt den Pfad an die Funktion GetPath ''' </summary> Private Shared ReadOnly Property Path() As String Get Return "Control Panel\Desktop" End Get End Property ''' <summary> ''' Gibt den ermittelten Pfad des Bildschirmschoners ''' aus der Registrierdatenbank zurück. ''' </summary> Public Shared Function GetPath() As String ' Die Variable ScreensaverPath nimmt den ermittelten Pfad auf Dim ScreensaverPath As String = String.Empty ' Fehlerüberwachung einschalten Try ' Zugriff auf die Registrierdatenbank initialisieren ' und mit den benoetigten Parametern auswerten. Using hKey As RegistryKey = Registry.CurrentUser.OpenSubKey(Path) ScreensaverPath = DirectCast(hKey.GetValue(ValueName, ""), String) End Using Catch ex As Exception ' Eventuell auftretenden Fehler abfangen ' und Fehlermeldung ausgeben MessageBox.Show(ex.Message.ToString(), "Info") End Try ' Rückgabe des Pfades Return ScreensaverPath End Function End Class
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Pfad ermitteln Dim Path As String = GetScreenSaverPath.GetPath() ' Statusmeldung der Pfadermittlung in der Titelzeile anzeigen Me.Text = IIf(Path.Length > 0, Path, "Pfad wurde nicht gefunden") ' Konnte kein Pfad ermittelt werden wird die Prozedur verlassen. If Path.Length = 0 Then Return Else ' Prüfen ob die angegebene Datei existiert. ' Ist dies der Fall... If IO.File.Exists(Path) Then ' ... wird der Bildschirmschoner gestartet. ' Dateinamen in der Titelzeile anzeigen Me.Text = "Screensave: " & IO.Path.GetFileName(Path) ' Initalisierung Dim psi As ProcessStartInfo = New ProcessStartInfo() With psi .ErrorDialog = True ' Pfadübergabe .FileName = Path End With ' Prozess starten Process.Start(psi) Else ' Konnte die Datei nicht gefunden werden, Fehler anzeigen MessageBox.Show("Datei wurde nicht gefunden...", "Info") End If End If End Sub
End Class