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

https://www.vbarchiv.net
Rubrik: System/Windows · Desktop/Bildschirm/Display   |   VB-Versionen: VB4, VB5, VB630.01.01
Desktop-Wallpaper zeitgesteuert ändern

Ändern Sie das Hintergrundbild des Desktops zeitgesteuert aus Ihrer VB-Anwendung heraus.

Autor:   Heinz PrelleBewertung:  Views:  21.551 
www.visual-basic5.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Im vorigen Tipp haben wir Ihnen gezeigt, wie man das Desktop-Hintergrundbild aus einer VB-Anwendung heraus ändern kann. Unser heutiger Tipp zeigt, wie Sie das Desktop-Hintergrundbild zeitgesteuert ändern können. Hierbei werden alle Bilder eines bestimmten Dateiordners berücksichtigt. Das Zeitintervall lässt sich frei festlegen.

' zunächst die benötigten API-Funktionen
Private Declare Function SystemParametersInfo Lib "user32" _
  Alias "SystemParametersInfoA" ( _
  ByVal uAction As Long, _
  ByVal uParam As Long, _
  ByVal lpvParam As Any, _
  ByVal fuWinIni As Long) As Long 
 
Private Const SPIF_SENDWININICHANGE = &H2 
Private Const SPI_SETDESKWALLPAPER = 20 
Private Const SPIF_UPDATEINIFILE = &H1 
 
' Bilddatei (sFilename) muß BITMAP enthalten
Public Sub SetDesktopWallpaper(ByVal sFilename As String)
  SystemParametersInfo SPI_SETDESKWALLPAPER, 0, sFileName, _ 
    SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE 
End Sub
 
' alle BMP-Dateien eines best. Verzeichnisses ermitteln
Private Function ReadGrafiken(ByVal sVerz As String, _
  ByRef sFile() As String) As Integer   
 
  Dim sName As String
  Dim intZaehler As Integer
 
  If Right$(sVerz,1) <> "\" Then sVerz = sVerz + "\" 
  sName = Dir$(sVerz & "*.bmp")
  While sName <> ""
    ReDim Preserve sFile(intZaehler)
    sFile(intZaehler) = sVerz & sName
    intZaehler = intZaehler + 1
    sName = Dir$()
  Wend
  ReadGrafiken = intZaehler
End Function 
 
' Haupt-Anwendung
Dim sFile() As String
Dim sCount As Integer
 
Private Sub Form_Load()
  Dim Pfad As String
 
  ' Grafiken ermitteln
  Pfad = Command$
  If Pfad = "" Then Pfad = App.Path
 
  sCount = ReadGrafiken(Pfad, sFile())
 
  ' Zeitintervall: 5 Sekunden
  Timer1.Interval = 5000
  Timer1.Enabled = (sCount>0)
End Sub
 
' Bild im festgelegten Zeitintervall zufällig
' ermitteln und als Desktop-Hintergrund setzen
Private Sub Timer1_Timer()
  Dim bIdx As Integer
 
  Randomize -Timer
  bIdx = Int(sCount * RND + 1)
  SetDesktopWallpaper sFile(bIdx)  
End Sub



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.