Desktophintergrund je nach Tageszeit ändern per Skript Windows 8.1

Desktophintergrund je nach Tageszeit ändern per Skript Windows 8.1

Hallo, ich benutze diese Website zum ersten Mal und hoffe daher, dass ich die Frage nicht im falschen Format stelle.

Wie der Titel schon sagt, habe ich ein ähnliches Problemzu einem Thread, der vor einiger Zeit beantwortet wurdedas hatte die Antwort, funktionierte aber nicht auf meinem Computer, auf dem Windows 8.1 läuft, als ich versuchte, es zum Testen auszuführen. Ich bin sicher, dass ich die Anweisungen befolgt habe, indem ich den Pfad geändert habe, in dem sich das Bild befindet, und ich habe mich gefragt, was ich ändern müsste, damit es funktioniert, oder ob der Code vollkommen in Ordnung ist und ich wahrscheinlich nur irgendwo einen Fehler gemacht habe.

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

Ich habe auch versucht, dieursprünglicher Codeaber am Ende bekomme ich eine Fehlermeldung, dass das System die in der letzten Codezeile angegebene Datei nicht finden kann.

Jede Hilfe wird geschätzt!

Antwort1

Dies ist eine schlechte Antwort und sollte nicht verwendet werden:

Dieses Skript emuliert einen Rechtsklick auf ein Bild und drückt „Als Desktop-Hintergrund festlegen“. Die Verwendung des Skripts sollte klar sein SetWallPaper "directory to picture", "filename of picture", "name context menu to run".

'File encoding should be in ANSI
SetWallPaper "C:\icons\", "Potato-icon.png", "Set as desktop &background"

Sub SetWallPaper(WallPaperFolder, WallpaperFile,VerbName)
dim objShell, objFolder, objFolderItem, objVerb, colVerbs
Set objShell = CreateObject("Shell.Application")
set objFolder=objShell.NameSpace(WallPaperFolder)
set objFolderItem=objFolder.ParseName(WallPaperFile)
set colVerbs=objFolderItem.Verbs
for each objVerb in colVerbs
    'msgbox objVerb ,0, "Press CTRL+C for copy text" 'uncomment for debug names in contextmenu
    if objVerb=VerbName then
        'x=msgbox(objVerb ,0, "omg found")
        objVerb.DoIt
        'Without the sleep command the change never takes effect on Win7.
        wscript.sleep(2000)
        wscript.quit
    end if
next
End Sub

Wenn in Ihrem Windows die Option „Als Desktop-Hintergrund festlegen“ beim Rechtsklick auf ein Bild einen anderen Namen hat:

  • Sie sollten die Zeile auskommentieren (einfache Anführungszeichen entfernen) nachfür jedes objVerb in colVerbs
  • Führen Sie dann das Skript aus und suchen Sie (EINGABE für die nächste Nachricht) nach der Zeichenfolge „Als Desktop und Hintergrund festlegen“ für Ihre Sprache. Drücken Sie dann STRG+C, um die Nachricht zu speichern.
  • Öffnen Sie den Editor und drücken Sie STRG+V, damit die Nachricht eingefügt wird. Kopieren Sie diesen Namen in das Skript.

bezogen aufDas

Wenn Sie keine Fehler machen, funktioniert es zumindest unter Windows 7.

verwandte Informationen