Wie ändere ich mein Sperrbild automatisch?

646
Ethan Gascoigne

Ich möchte, dass sich mein Sperrbildschirm automatisch ändert. Das ist jedes Mal anders, wenn ich mich bei meinem Computer anmelde. Ich mag die Diashow-Option nicht, da sie einen Schwenk- und Zoomeffekt hinzufügt, der mich stört.

Ich habe versucht, dies zu erreichen, indem ich eine Batch-Datei verwende, um das von mir gewählte Bild durch ein anderes Bild zu ersetzen. Dies ändert jedoch nicht den Hintergrund des gesperrten Bildschirms. Noch seltsamer ist, dass selbst wenn ich das Bild manuell ändere, aber den gleichen Namen beibehalten. Wenn ich es in den Einstellungen als Sperrbild auswähle, bleibt es so wie beim ersten Auswählen. Ich weiß nicht, warum dies passiert. Weiß jemand eine Lösung dafür, da dies der einzige Weg ist, meinen Sperrbildschirmhintergrund automatisch zu ändern.

Ich bin unter Windows 10

0
welches Betriebssystem? studiohack vor 5 Jahren 0
Welches Betriebssystem und welche Sperrbildschirm-App, wenn nicht die Betriebssystembereitstellung? Das System lädt wahrscheinlich, was der Sperrbildschirm verwendet, oder zumindest seine Einstellungen, in den Arbeitsspeicher und führt es von dort aus aus. Änderungen an den technischen Daten wirken sich erst dann aus, wenn Sie das nächste Mal einen Neustart durchführen oder den Sperrbildschirm schließen und neu starten. fixer1234 vor 5 Jahren 0
@ fixer1234 Ich bin auf Windows 10, sorry, das habe ich vergessen zu sagen, ich habe es meinem ursprünglichen Beitrag hinzugefügt. Was meinten Sie mit Neustart des Sperrbildschirms? Ethan Gascoigne vor 5 Jahren 0
@EthanGascoigne Sperren Sie Ihre Sitzung über das Startmenü oder die Tastenkombination Ramhound vor 5 Jahren 0
@Ramhound Ich habe getestet, ob das funktioniert, aber das Bild war immer noch dasselbe. Wenn ich das von mir ausgewählte Bild lösche und dort ein völlig anderes Bild mit demselben Namen platziere, wird das ursprüngliche Bild wiederhergestellt. Wenn ich meinen Computer neu starte, bleibt das Originalbild erhalten. Warum bleibt es bei diesem Originalbild? Ethan Gascoigne vor 5 Jahren 0

1 Antwort auf die Frage

0
Ben N

Wie in dieser anderen Antwort erwähnt, kopiert Windows das ausgewählte Bild an einem bestimmten Ort, wenn Sie ein Sperrbild festlegen. Wenn Sie also die Originaldatei ändern, wird die angezeigte Kopie nicht geändert. Es gibt wahrscheinlich einige Zwischenspeicherungen nach dem ursprünglichen Dateinamen, die dazu führen, dass es nicht aktualisiert wird, wenn Sie dieselbe Bilddatei erneut auswählen. Das Durchsuchen der in dieser Antwort erwähnten binären Registrierungswerte scheint die Vorstellung zu unterstützen, dass Windows den ursprünglichen Dateinamen aufzeichnet.

Da Sie bereits über ein Batch-Skript zum Durchlaufen von Bilddateien verfügen, müssen Sie lediglich das Bild von Windows aus der Datei mit dem aktuellen Hintergrund aktualisieren. Um Windows dazu zu zwingen, können Sie PowerShell verwenden! Wenn ich die Fragmente, die ich in meiner Antwort auf eine ähnliche Frage erklärt habe, zusammensetze und Logik hinzufüge, um jedes Mal eine zufällig benannte Kopie zu erstellen, erhalten wir dieses Skript:

# Change this to the path where you keep the desired background image $imagePath = 'C:\path\to\image.ext'  $newImagePath = [System.IO.Path]::GetDirectoryName($imagePath) + '\' + (New-Guid).Guid + [System.IO.Path]::GetExtension($imagePath) Copy-Item $imagePath $newImagePath [Windows.System.UserProfile.LockScreen,Windows.System.UserProfile,ContentType=WindowsRuntime] | Out-Null Add-Type -AssemblyName System.Runtime.WindowsRuntime $asTaskGeneric = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and $_.GetParameters()[0].ParameterType.Name -eq 'IAsyncOperation`1' })[0] Function Await($WinRtTask, $ResultType) { $asTask = $asTaskGeneric.MakeGenericMethod($ResultType) $netTask = $asTask.Invoke($null, @($WinRtTask)) $netTask.Wait(-1) | Out-Null $netTask.Result } Function AwaitAction($WinRtAction) { $asTask = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and !$_.IsGenericMethod })[0] $netTask = $asTask.Invoke($null, @($WinRtAction)) $netTask.Wait(-1) | Out-Null } [Windows.Storage.StorageFile,Windows.Storage,ContentType=WindowsRuntime] | Out-Null $image = Await ([Windows.Storage.StorageFile]::GetFileFromPathAsync($newImagePath)) ([Windows.Storage.StorageFile]) AwaitAction ([Windows.System.UserProfile.LockScreen]::SetImageFileAsync($image)) Remove-Item $newImagePath 

Ändern Sie den Bildpfad oben im Skript, und speichern Sie das Skript als .ps1Datei (z. B. lockscr.ps1) im selben Ordner wie die Batchdatei für das Mischen von Bildern. Wenn Sie dies noch nicht getan haben, befolgen Sie die Anweisungen im Abschnitt Aktivieren von Skripts des PowerShell-Tag-Wikis, um die Ausführung von PowerShell-Skripts zu ermöglichen. Ändern Sie dann die Batchdatei, um das PowerShell-Skript auszuführen, nachdem Sie die Bilder verschoben haben:

powershell -file .\lockscr.ps1 
Kommentare sind nicht für eine erweiterte Diskussion vorgesehen. Diese Konversation wurde zum Chat verschoben (https://chat.stackexchange.com/rooms/80777/discussion-on-answer-by-ben-n-how-do-i-change-my-lock-screen- bildautomatisch). DavidPostill vor 5 Jahren 0