Hintergrundbild je nach Tageszeit per Skript oder Batch-Datei ändern?

9

Ich möchte 2 verschiedene Hintergrundbilder haben, die sich je nach Tageszeit ändern (6 bzw. 22 Stunden) und nur die Nacht nach 22 Stunden und den Tag erst nach 6 Stunden und bis 22 Stunden anzeigen möchten.

Ich habe kein Programm gefunden, das dies nach einem Standby-Modus tun kann, daher dachte ich, dass es einfach zu realisieren sein sollte, wenn der Taskplaner ein Skript ausführt. Nun stellt sich nicht nur die Frage, wie ein solches Skript zu realisieren ist, sondern auch, ob das Skript die Zeitprüfung oder den Taskplaner enthalten soll. Ich bin mir nicht sicher, was bei langen Standby-Zeiten des PCs besser funktionieren würde.

Ich habe bereits einige Skripte aus ähnlichen Fragen ausprobiert und gehofft, ich könnte sie an meine Bedürfnisse anpassen, aber sie funktionierten überhaupt nicht.

Kann mir jemand helfen? TIA.

Patrick
quelle

Antworten:

5

Das ist eigentlich sehr einfach:

  1. Klicken Sie mit der rechten Maustaste auf den Desktop-Hintergrund
  2. Wählen Sie "Personalisieren"
  3. Klicken Sie auf "Desktop-Hintergrund"
  4. Ziehen Sie Bilder per Drag & Drop in das Feld oder wählen Sie "Durchsuchen" und suchen Sie die Bilder.
  5. Überprüfen Sie beide Bilder, um sicherzustellen, dass der Morgen der erste ist
  6. Warten Sie bis 12:00 Uhr und wählen Sie "Bild alle 12 Stunden ändern".
  7. Genießen!
Adam
quelle
Das ist so ein eleganter Trick!
Aalaap
5

Verwenden Sie den Taskplaner und erstellen Sie ein VBscript, um das Hintergrundbild zu ändern. Erstellen Sie ein Skript für jedes Hintergrundbild, das Sie verwenden möchten.

dim shell
Set shell = WScript.CreateObject("WScript.Shell")
wallpaper = "C:\path\to\wallpaper.jpg"
shell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", wallpaper
shell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True

Speichern Sie die Datei als etwas.vbs und fügen Sie sie dem Taskplaner hinzu, und voila! Du hast alles zum Laufen gebracht.

Es wurde auch erwähnt, dass sich das Hintergrundbild nicht ändern würde, wenn Sie Ihren Computer zum Zeitpunkt des Wechsels heruntergefahren hätten. Dies ist falsch, da die Aufgabe so eingestellt werden kann, dass sie beim ersten Start nach der ausgewählten Zeit ausgeführt wird. Sie wird also festgelegt, sobald Sie den Computer starten, auch wenn er während der Zeit, in der er sich hätte ändern sollen, ausgeschaltet war. Um dies einzurichten, gehen Sie zu den spezifischen Aufgabeneigenschaften und auf die Registerkarte Einstellungen. Kreuzen Sie das zweite Kästchen im Fenster an und los geht's.

Dieses Skript funktioniert perfekt für mich in Windows 8. Bitte beachten Sie, wie ich das ursprüngliche Skript ein wenig geändert habe, um das Skript zu verkürzen.

Quelle: http://www.ehow.com/facts_7586006_script-change-desktop-background.html

Steen Schütt
quelle
Das ist die wahre Antwort.
Joe Coder
1

Jedes Mal, wenn ich jemanden sehe, der zu einer bestimmten Zeit oder in regelmäßigen Abständen unter Windows nach etwas fragt, unterstütze ich die Idee, Windows Task Scheduler zu verwenden.

Geben Sie hier die Bildbeschreibung ein

Um das zu tun, was Sie beabsichtigen, sollten Sie zwei Takes erstellen, von denen jeder ein Skript oder einen Befehl ausführen soll, um zu dem gewünschten Zeitpunkt von einem Hintergrundbild zu einem anderen zu wechseln. Diese Befehle sollten in der Lage sein, Ihr Windows-Hintergrundbild automatisch selbst zu ändern. Der einfachste Weg, dies zu tun, ist die Verwendung der Windows-Registrierung. Hier finden Sie HOWTO: Ändern Sie das Desktop-Hintergrundbild mit dem folgenden Registrierungsschlüssel:

HKEY_CURRENT_USER \ Systemsteuerung \ Desktop \ WallPaper

Erstellen Sie also Ihre Aufgaben, indem Sie die Werte für Ihre Registrierung festlegen, und Sie können sie automatisch ändern, ohne dass Apps von Drittanbietern installiert werden müssen.

Diogo
quelle
Danke, aber das erfordert einen Neustart, muss aber sofort angewendet werden. Ich habe dieses Programm auch schon ausprobiert. Es kann nicht tun, was ich will, weil es das Hintergrundbild nicht von Tag zu Tag ändert, wenn der PC eine Zeit zum Umschalten verpasst hat, weil er sich beispielsweise im Standby-Modus befindet.
Patrick
Das hilft ihm überhaupt nicht - daher erfordert das, was ich in meinem Beitrag geschrieben habe, einen Neustart oder ein Abmelden und Anmelden, um die Änderungen vorzunehmen, also nicht automatisch.
PnP
Sie sind eigentlich ziemlich nah dran, Sie müssen nur die Systemparameter danach aktualisieren. Schauen Sie sich meine Antwort an.
Steen Schütt
1

Ich hatte vor, dies für eine ganze Weile zu tun, und bin dann auf das Thema zurückgekommen, während ich die Konfiguration nach einer Neuinstallation des Betriebssystems wieder so angepasst habe, wie es mir gefällt.

Nachdem ich mir das Projekt angesehen hatte, fand ich die Konfigurationsdatei für die Diashow (% APPDATA% / Microsoft / Windows / Themes / Slideshow.ini). Diese Datei enthält eine Zeile "ImagesRootPIDL =", die nach einigem googeln anzeigt, dass die folgende große Folge von Buchstaben, Zahlen und Symbolen tatsächlich ist. Eine "uuencodierte PCIDLIST_ABSOLUTE" ist anscheinend eine Möglichkeit, ein Verzeichnis in Windows unter zu finden eine niedrigere Ebene als die Verwendung eines Pfades.

Kurz gesagt, es sieht so aus, als würde sich diese Datei ändern, wenn ein Bild zum Verzeichnis für die Diashow hinzugefügt wird oder wenn die Diashow in ein neues Verzeichnis geändert wird. Meine Lösung bestand also darin, abhängig von der Variablen% TIME% zweimal täglich eine Batch-Datei zu schreiben, die INI für jede meiner Diashows in meinen Konfigurationsordner zu kopieren und sie mit Tag oder Nacht anzuhängen und dann die INI-Datei in der zu überschreiben Themenordner mit der entsprechenden .ini-Datei für Diashows.

Der einzige Nachteil meiner Lösung ist, dass jetzt eine Batch-Datei ständig ausgeführt wird. Obwohl ich denke, dass eine geplante Aufgabe eine bessere Implementierung wäre und sich um dieses Problem kümmert, baue ich gerne Dinge, die nur wirklich mit sich selbst interagieren. Bisher war kein Neustart des Computers oder Explorers erforderlich, um zwischen den Diashows zu wechseln. Nach Ablauf der Zeit zwischen den Folien wird lediglich zur nächsten Diashow gewechselt. Ich habe noch nicht versucht, es zum Scheitern zu bringen, aber es zwei Wochen lang laufen zu lassen, scheint mir eine Debug-Phase zu sein.

Ich bin ziemlich neu im Windows-Betriebssystem, daher entschuldige ich mich, wenn dies zu viele offensichtliche Aussagen enthält oder einfach durch mehrmaliges Klicken möglich ist. Ich denke, so etwas ist der schnellste Weg, um das Innenleben des Betriebssystems zu lernen, obwohl ich denke, ich hätte dies in etwa fünf Zeilen in einem Linux-Bash-Skript schreiben können, anstatt in den vierzig ungeraden Batch-Kolossen.

Geist
quelle
0

Leider glaube ich nicht, dass in Windows etwas integriert ist, mit dem Sie dies tun können, ohne sich tatsächlich abmelden und wieder anmelden zu müssen. Da Hintergrundbilder über die Registrierung gesteuert werden können, können Sie eine Batchdatei erstellen, um den Registrierungseintrag zu ändern - Änderungen am Hintergrundbild selbst werden jedoch erst angezeigt, wenn Sie sich abmelden und wieder anmelden. Sie können eine Drittanbieter-App wie die folgende ausprobieren: http://download.cnet.com/Automatic-Wallpaper-Changer/3000-2336_4- 10560884.html

Hoffe das hilft.

PnP
quelle