JPGs als Bildschirmhintergrund
In der c't 7/2000 wurde ein WSH-Skript vorgestellt, das regelmäßig per Zufallsgenerator ein anderes Hintergrundbild auswählt. Das Skript hatte den Nachteil, nicht mit aktiviertem Active Desktop zu funktionieren und als Hintergrundbilder nur .bmp-Dateien, aber keine JPEG-Grafiken verwenden zu können.
In der c't 7/2000 wurde ein WSH-Skript vorgestellt, das regelmäßig per Zufallsgenerator ein anderes Hintergrundbild auswählt. Das Skript hatte den Nachteil, nicht mit aktiviertem Active Desktop zu funktionieren und als Hintergrundbilder nur .bmp-Dateien, aber keine JPEG-Grafiken verwenden zu können.
Beide Probleme lassen sich lösen, indem man als Desktop-Hintergrund nicht direkt eine Grafik verwendet, sondern eine HTML-Seite, in der wiederum ein Hintergrundbild definiert ist. Durch das Zusammenspiel aus einem - leicht geänderten - WSH-Skript und einem Refresh-Befehl in der HTML-Seite erreicht man, dass sich das Hintergrundbild regelmäßig ändert.
Der Refresh-Befehl muss in der HTML-Datei in einem Meta-Tag innerhalb des -Abschnitts stehen:
0001_SuPeRcAlIfRaGiLiStIcExPiAlLeGoRic
Sein Content-Attribut gibt die Zeit in Sekunden an, nach der die Seite neu geladen werden soll (hier 3600, also jede Stunde einmal). Damit beim Aktualisieren der Seite jeweils ein anderes Bild geladen wird, muss man noch dafür sorgen, dass unter dem Dateinamen ‘Desktop.jpg’ auch ein anderes Bild gespeichert ist. Darum kümmert sich das Skript Desktop.vbs (siehe Listing): Es durchforstet einen Ordner auf der Festplatte nach .jpg-Dateien und kopiert eine zufällig ausgewählte über die Datei Desktop.jpg im Desktop-Ordner. Die Quelle der Bildersammlung kann man in Zeile 7 den Gegebenheiten auf der eigenen Festplatte anpassen, ebenso wie in den folgenden drei Zeilen das Ziel der Kopieraktion, die gewünschte Dateiendung und den Dateinamen, der natürlich mit dem in der HTML-Datei übereinstimmen sollte.
Damit das Skript ebenso wie die Aktualisierung der HTML-Datei einmal pro Stunde zum Zuge kommt, trägt man sie am besten in den Windows-Scheduler (Ordner ‘Geplante Vorgänge’) ein und gibt unter den erweiterten Einstellungen ein Wiederholungsintervall von einer Stunde ein. (Frank Leverenz/hos)
Ein WSH-Skript sucht per Zufallsgenerator einen neuen Hintergrund für den Desktop aus einer Bildersammlung heraus.
1 Set fs = CreateObject( _
2 "Scripting.FileSystemObject")
3 Set dict = CreateObject( _
4 "Scripting.Dictionary")
5
6 bildarchiv = _
7 "C:\Eigene Dateien\Eigene Bilder\Desktop"
8 desktop = "C:\Windows\Desktop"
9 extension = "jpg"
10 default = "Desktop.jpg"
11
12 If Not fs.FolderExists(bildarchiv) Then
13 ' Ordner existiert nicht
14 MsgBox "Ordner " & bildarchiv & _
15 " existiert nicht!", vbExclamation
16 WScript.Quit
17 End If
18
19 ' alle Dateien im Ordner untersuchen
20 cc = 0
21 Set hintergrund = _
22 fs.GetFolder(bildarchiv).files
23
24 For Each file In hintergrund
25 ' Dateityp ermitteln
26 ext = lcase(fs.GetExtensionName( _
27 file.name))
28 ' ist es ein JPG-Bild?
29 If ext = extension Then
30 ' ja, ins Dictionary einfügen
31 dict.Add cc, file.path
32 cc = cc + 1
33 End If
34 Next
35
36 If cc > 0 Then
37 ' eins der gesammelten Bilder aussuchen:
38 Randomize
39 zufall = Fix(Rnd * dict.Count)
40
41 ' Bild aktivieren
42 fs.copyfile dict(zufall), desktop & _
43 "\" & default
44 Else
45 MsgBox "Keine " & ucase(extension) & _
46 "-Bilder im Ordner " & bildarchiv & "."
47 End If (hos)