Comment définir l'arrière-plan du bureau sous Windows à partir d'un script?

14

Sur X Windows, j’avais un script de rappel «silencieux-alarme» qui modifiait la couleur de la fenêtre de la racine (arrière-plan) en rouge uni, quelques secondes avant de le rétablir. Y at-il un moyen de le faire pour Windows XP?

Je pense à une sorte de tâche planifiée qui utilise cscript pour définir les clés de registre ( HKEY_CURRENT_USER\Control Panel\Desktop ). Cependant, mes tentatives ne semblent pas avoir d'effet. Que dois-je signaler pour lire ces entrées de registre et redessiner le bureau?

gronostaj
la source

Réponses:

8

Cela change l'arrière-plan via la ligne de commande. Il suffit de sauvegarder cela en tant que fichier chauve-souris. Utilisez bmp ou vous devrez actualiser. Définit également le papier peint pour qu'il soit étiré. Si vous supprimez la ligne wallpaperstyle, elle sera automatiquement centrée.

@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
Alex
la source
Vous devrez peut-être enlever HKCU\Control Panel\Desktop\TranscodedImageCache avant de mettre à jour.
Michel de Ruiter
6

Je pense qu’une fois que vous modifiez le paramètre de papier peint dans le registre, vous devez simplement exécuter

RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters 

à partir de la ligne de commande et les modifications doivent prendre effet. Vous devez vous assurer que votre image est un fichier bmp.

En fait, j'ai juste essayé ceci en créant un fichier bmp de la taille d'un bureau qui était tout rouge. J'ai modifié la clé // HKCU / panneau de configuration / bureau / papier peint pour qu'elle contienne le chemin d'accès complet à cette image. J'ai exécuté la commande ci-dessus à partir de la ligne de commande et le bureau a été remplacé par le bmp rouge que je viens de créer.

Mark
la source
fonctionne très bien pour moi pour supprimer l'image, mais quand j'ai essayé de changer la couleur d'arrière-plan dans "HKCU \ Panneau de configuration \ Couleurs \ Arrière-plan", il ne le fait pas.
Peter Hahndorf
4

Voici une option. Créez une petite application console avec un SharpDevelop. Mettez ce code dans Programs.cs. J'appelle l'application "CWP"; Changer le fond d'écran. Il suffit d’un paramètre sur la ligne de commande: le nom du fichier. Testé sous Windows 7 Ultimate 64 bits avec le fichier .bmp.

    /*
     * 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] );
                }
            }
        }
    }
Polarlightning
la source
1

ce n'est pas aussi cool que de passer du temps à écrire du code, mais il y a un util système assez utile appelé bginfo qui intègre des informations dans l'arrière-plan du bureau. c'est assez configurable avec toutes sortes d'options de ligne de commande. non, je ne l'ai pas écrit.


la source
0

Pour Windows 7, cela fonctionne même dans des zones restreintes !! ;) Remplacez votre chemin d’emplacement d’image par

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
Anand Varkey Philips
la source