Nach jedem Start ein neues Desktop-Motiv zeigen

Abwechslung auf dem Bildschirm: Wollen Sie bei jedem Start ein anderes Hintergrundbild sehen, stellen Sie das über »Eigenschaften« des Desktops ein.

Automatisieren Sie das Wechseln des Hintergrundbildes. Kopieren Sie die Datei CHNGWALL.VBS von der Heft-CD CHIP-Code CHNGWALL nach WINDOWS\STARTMENÜ\PROGRAMME\AUTOSTART. ! Achtung: In NT 4.0 heißt der Ordner WINNT\PROFILES\USER\STARTMENÜ\PROGRAMME\AUTOSTART, in Windows 2000 heißt er DOKUMENTE UND EINSTELLUNGEN\USER\STARTMENÜ\PROGRAMME\AUTOSTART.

Anstelle von »USER« muss jeweils Ihr Benutzername stehen.

Nächster Schritt: Legen Sie auf dem Laufwerk C: einen neuen Ordner namens HINTERGRÜNDE an. Darin speichern Sie alle Bilder, die Sie als Desktop-Motiv verwenden wollen. Bei Windows 95 und NT müssen die Dateien grundsätzlich im Format BMP gespeichert sein. Die neueren Versionen erlauben auch JPG-Files.

Der Rest funktioniert von selbst: Das Listing startet beim Booten von Windows und zählt die im Ordner HINTERGRUND abgelegten Bilder. Das heißt: Sie können jederzeit neue Motive in den Ordner verschieben. Per Zufall bestimmt das Programm eines der Bilder als Desktop-Motiv. Wichtig: Der Windows Scripting Host muss stets aktiv sein.

Für Programmier-Interessierte hier das komplette Listing mit Erklärung:



Dim iAccident, iNumber, iCounter
Dim szFolder, szRegKey, szWallpaper
Dim objShell, objFileSystem, objFolder
iNumber = 0
iCounter = 0
szFolder = äC:\Hintergrundô
szRegKey = äHKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\General\Wallpaperô
set objShell = Wscript.CreateObject(äWscript.Shellô)
set objFileSystem = CreateObject(äScripting.FileSystemObjectô)
set objFolder = objFileSystem.getFolder(szFolder)
æ Anzahl der Dateien ermitteln
iNumber = objFolder.files.count
æ Zufallszahl ermitteln
randomize
iAccident = Fix(rnd*(iNumber))+ 1
æ Hintergrunddatei in die Registry eintragen
for each objFile in objFolder.files
iCounter = iCounter+1
If iCounter = iAccident then
szWallpaper = szFolder & ä\ô & objFile.Name
objShell.RegWrite szRegKey,
szWallpaper
End If
next



In den Variablen »szFolder« speichert das Listing den Ordner, in dem die Hintergrundbilder liegen sollen – wenn Sie also den Ordner wechseln möchten, dann vermerken Sie den neuen Pfad hier. Die Variable »szRegKey« enthält den Schlüssel der Registry, der das Hintergrundmotiv speichert – also »HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\General\Wallpaper«. Das Objekt »objShell« des Typs »Wscript.Shell« erlaubt Zugriffe auf die Registry. »FileSystemObject« schließlich ermöglicht den Zugang sowohl zu Dateien als auch zu Ordnern.
Mit der Methode »getFolder« erzeugen Sie das Objekt »objFolder«, das den Ordner mit den Hintergrundmotiven repräsentiert. Im nächsten Schritt ermitteln Sie die Anzahl »iNumber« der im Ordner liegenden Motive, indem Sie die Methode »Count« der Auflistung »objFolder.files« verwenden.
Jetzt erzeugt das Listing eine Zufallszahl. »randomize« initialisiert den Zahlengenerator, die Formel »iAccident = Fix(rnd*(iNumber)) + 1« schafft dann eine Zufallszahl im Rahmen der vorhandenen Motive. Die »For Each«-Schleife sucht das Motiv aus und schreibt es mit »RegWrite« in die Registry.

www.chip.de/foren/windows