Wie stelle ich den Desktop-Hintergrund unter Windows über ein Skript ein?


14

Unter X Windows hatte ich ein cooles "Silent-Alarm" -Erinnerungsskript, das die Farbe meines Stammfensters (Hintergrunds) für ein paar Sekunden in ein durchgehendes Rot änderte, bevor es zurückgesetzt wurde. Gibt es eine Möglichkeit, dies für Windows zu tun XP?

Ich denke an eine geplante Aufgabe, die cscript verwendet, um Registrierungsschlüssel ( HKEY_CURRENT_USER\Control Panel\Desktop) festzulegen . Meine Versuche scheinen jedoch keine Wirkung zu haben. Was muss ich signalisieren, um diese Registrierungseinträge zu lesen und den Desktop neu zu zeichnen?

Antworten:


8

Dies ändert den Hintergrund über die Befehlszeile. Speichern Sie dies einfach als Fledermausdatei. Verwenden Sie bmp oder Sie müssen aktualisieren. Legt außerdem fest, dass das Hintergrundbild gedehnt wird. Wenn Sie die wallpaperstyle Linie herausnehmen, wird sie automatisch zentriert.

@echo off
reg add "HKCU\control panel\desktop" /v wallpaper /t REG_SZ /d "" /f 
reg add "HKCU\control panel\desktop" /v wallpaper /t REG_SZ /d "C:\[LOCATION OF WALLPAPER HERE]" /f 
reg delete "HKCU\Software\Microsoft\Internet Explorer\Desktop\General" /v WallpaperStyle /f
reg add "HKCU\control panel\desktop" /v WallpaperStyle /t REG_SZ /d 2 /f
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters 
exit

Möglicherweise müssen Sie HKCU\Control Panel\Desktop\TranscodedImageCachevor dem Aktualisieren entfernen .
Michel de Ruiter

Muss sich das Hintergrundbild auf dem lokalen Computer befinden oder kann es sich auf einem anderen Computer im Netzwerk wie \\ server \ share \ wallpaper.bmp befinden?
Ricardo Bohner

6

Ich denke, dass, sobald Sie die Hintergrundeinstellungen in der Registrierung ändern, Sie einfach ausführen müssen

RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters 

von der Kommandozeile und die Änderungen sollten wirksam werden. Sie müssen sicherstellen, dass Ihr Bild eine BMP-Datei ist.

Tatsächlich habe ich es einfach versucht, indem ich eine BMP-Datei in Desktopgröße erstellt habe, die nur rot war. Ich habe den Schlüssel // HKCU / control panel / desktop / wallpaper so geändert, dass er den vollständigen Pfadnamen zu dieser Bitmap enthält. Ich habe den obigen Befehl über die Befehlszeile ausgeführt und den Desktop in das rote BMP geändert, das ich gerade erstellt habe


Es funktioniert einwandfrei, wenn ich das Bild entferne, aber wenn ich versuche, die Hintergrundfarbe in "HKCU \ Systemsteuerung \ Farben \ Hintergrund" zu ändern, funktioniert es nicht.
Peter Hahndorf

4

Hier ist eine Option. Erstellen Sie eine kleine Konsolen-App mit einem SharpDevelop. Fügen Sie diesen Code in Programs.cs ein. Ich nenne die App "CWP"; Hintergrund ändern. In der Befehlszeile wird nur ein Parameter benötigt: der Dateiname. Getestet unter Windows 7 Ultimate 64-Bit mit BMP-Datei.

    /*
     * Created by SharpDevelop.
     * Date: 21.9.2012
     * Time: 16:13
     */
    using System;
    using System.Data;
    using System.Text;
    using System.Runtime.InteropServices;

    namespace cwp
    {

       class Program
        {
           [DllImport("user32.dll")]
           public static extern Int32 SystemParametersInfo(
               UInt32 action, UInt32 uParam, String vParam, UInt32 winIni);

            public static readonly UInt32 SPI_SETDESKWALLPAPER  = 0x14;
            public static readonly UInt32 SPIF_UPDATEINIFILE    = 0x01;
            public static readonly UInt32 SPIF_SENDWININICHANGE = 0x02;

            public static void SetWallpaper(String path)
            {
                Console.WriteLine("Setting wallpaper to '" + path + "'");
                SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, path,
                    SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);
            }

            public static void Main(string[] args)
            {
                if (args.Length >= 1)
                {
                    SetWallpaper( args[0] );
                }
            }
        }
    }

1

Dies ist nicht so cool wie das eigentliche Schreiben von Code, aber es gibt ein ziemlich nützliches System namens bginfo , das Informationen in den Hintergrund des Desktops einbettet. Es ist ziemlich konfigurierbar mit allen Arten von Befehlszeilenoptionen. Nein, ich habe es nicht geschrieben.


0

Für Windows 7 funktioniert es auch in eingeschränkten Bereichen !! ;) Ersetze deinen Bildpfad durch

C: \ Users \ 1509967 \ Desktop \ hi.jpg

reg add "HKEY_CURRENT_USER\control panel\desktop" /v wallpaper /t REG_SZ /d "" /f
reg add "HKEY_CURRENT_USER\control panel\desktop" /v wallpaper /t REG_SZ /d C:\Users\1509967\Desktop\hi.jpg /f
reg add "HKEY_CURRENT_USER\control panel\desktop" /v WallpaperStyle /t REG_SZ /d 2 /f
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
pause
exit

0

Die Registrierungsmethode funktioniert nicht immer, besonders wenn das Bild nicht im BMP-Format vorliegt. Sie können also meine Methode ausprobieren. Öffnen Sie einfach das gewünschte Bild mit Windows Photo Viewer und verwenden Sie eine Tastenkombination, um das Bild als Desktop-Hintergrund festzulegen.

Dim wShell
set wShell = createobject("Wscript.shell")
wShell.Run "cmd /c start " & Your photo path here,0,True

do
     wscript.sleep 100
loop until wShell.appactivate("Windows Photo Viewer") = true

wShell.Sendkeys  ("+{F10}")
WScript.Sleep 100
wShell.Sendkeys  "k"
wShell.Exec "taskkill /im dllhost.exe"

Dies ist ein VBS-Skript, aber Sie können dieselbe Methode mit cmd verwenden

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.