vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: System/Windows · Desktop/Bildschirm/Display   |   VB-Versionen: VB2005, VB200823.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 PrelleBewertung:  Views:  12.391 
www.visual-basic5.deSystem:  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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.