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