Eine geplante Aufgabe ausführen, mit der das Hintergrundbild des Desktops aktualisiert werden kann, ohne einen Vordergrund-Flash zu verursachen.

1429
travis

Ich mag es, wie bestimmte Windows-Designs durch verschiedene Bilder rotieren, aber ich benutze auch gerne BgInfo, um verschiedene Maschineninformationen auf das Desktop- Hintergrundbild zu schreiben.

Ich habe eine angepasste BGI-Datei erstellt und diese current.jpgin einem Ordner angezeigt. Dann schrieb ich ein Powershell-Skript, um ein zufälliges Bild in diesem Ordner in das zu kopieren current.jpgund dann die Befehlszeilenoptionen von BgInfo auszuführen, um das Hintergrundbild zu aktualisieren:

Get-ChildItem -Path $Env:USERPROFILE\Pictures\wallpaper\* -Include *.* -Exclude current.jpg | Get-Random | Foreach-Object { Copy-Item -Path $_ -Destination $Env:USERPROFILE\Pictures\wallpaper\current.jpg } D:\utils\SysinternalsSuite\Bginfo.exe $Env:USERPROFILE\Documents\custom.bgi /NOLICPROMPT /timer:0 

Das funktioniert super. Wenn ich jedoch eine geplante Aufgabe für die Ausführung dieses Skripts alle dreißig Minuten einrichte, würde ein Powershell-Fenster kurz auf dem Bildschirm blinken. Ich hatte Lösungen gesehen , die eine VBS-Datei verwenden, um Befehle auszuführen, also versuchte ich Folgendes:

Dim shell,command command = "powershell.exe -NoLogo -NonInteractive -WindowStyle Hidden -File D:\utils\select-random-wallpaper.ps1" set shell = CreateObject("WScript.Shell") shell.Run command,0 

Ich sehe kein kurzes Konsolenfenster mehr, aber die Vordergrund-App wird trotzdem auf seltsame Weise aktiviert. Wenn ich Chrome verwende, wechselt das aktuelle aktive Chrome-Fenster in ein anderes Fenster.

Mache ich etwas falsch? Wie plane ich eine Aufgabe, ohne dass dies Vordergrundanwendungen beeinflusst?

Edit: Im Zusammenhang damit, dass es BgInfo-spezifisch ist, eine Idee, ob die Quelle von BgInfo irgendwo verfügbar ist? Der Fehler existiert seit 2007 und wurde seit 2013 nicht einmal aktualisiert.

1

1 Antwort auf die Frage

2
Beright

Dies scheint ein Problem mit BGInfo zu sein (siehe hier und hier ), und keine der Optionen scheint dieses Verhalten zu ändern.

Es ist anscheinend möglich, dieselben Informationen wie BGInfo abzurufen, Text in ein Bild zu schreiben und das Hintergrundbild über die Powershell zu aktualisieren, sodass Sie Ihre eigene Lösung rollen können, wenn Sie dazu neigen. Es kann nicht garantiert werden, dass einer dieser Schritte auch nicht den Fokus fokussiert, es kann jedoch einen Versuch wert sein.

Oh, interessant. Ich werde das untersuchen, danke. travis vor 8 Jahren 0
Hier ist die Lösung, die ich am Ende geschrieben habe, es scheint gut genug zu funktionieren: https://gist.github.com/dieseltravis/3066def0ddaf7a8a0b6d travis vor 8 Jahren 0