Como defino o plano de fundo da área de trabalho no Windows a partir de um script?

13

No X Windows, eu tinha um script de lembrete 'silencioso-alarme' que mudava a cor da minha janela raiz (plano de fundo) para vermelho sólido, apenas por alguns segundos, alguns instantes antes de alterá-la. Existe uma maneira de fazer isso para o Windows XP?

Estou pensando em algum tipo de tarefa agendada que usa cscript para definir chaves de registro ( HKEY_CURRENT_USER\Control Panel\Desktop ). No entanto minhas tentativas não parecem ter nenhum efeito. O que devo sinalizar para ler essas entradas do registro e redesenhar a área de trabalho?

    
por gronostaj 22.09.2008 / 23:41

5 respostas

8

Isso muda o fundo via linha de comando. Apenas salve isso como um arquivo bat. Use bmp ou você terá que atualizar. Também define o papel de parede a ser esticado. Se você remover a linha wallpaperstyle, ela será automaticamente centralizada.

@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
    
por 30.04.2011 / 23:21
6

Acho que, depois de modificar a configuração do papel de parede no registro, basta executar

RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters 

da linha de comando e as alterações devem entrar em vigor. Você precisa ter certeza de que sua imagem é um arquivo bmp.

Na verdade, eu apenas tentei isso criando um arquivo bmp de tamanho de área de trabalho que era todo vermelho. Alterei a chave // HKCU / painel de controle / área de trabalho / papel de parede para conter o nome completo do caminho para este bitmap. Eu corri o comando acima da linha de comando e a área de trabalho mudou para o bmp vermelho que acabei de criar

    
por 23.09.2008 / 04:18
4

Aqui está uma opção. Crie um pequeno aplicativo de console com um SharpDevelop. Coloque este código em Programs.cs. Eu chamo o aplicativo "CWP"; Mudar papel de parede. Leva apenas um parâmetro na linha de comando: o nome do arquivo. Testado no Windows 7 Ultimate de 64 bits com arquivo .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] );
                }
            }
        }
    }
    
por 21.09.2012 / 15:32
1

isso não é tão legal quanto gastar tempo escrevendo código, mas há um utilitário de sistema bastante útil chamado bginfo que incorpora informações no plano de fundo da área de trabalho. é bastante configurável com todos os tipos de opções de linha de comando. não, eu não escrevi.

    
por 22.09.2008 / 23:53
0

Para o Windows 7, funciona mesmo em áreas restritas !! ;) Substitua o caminho do local da sua imagem por

C:\Users09967\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:\Users09967\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
    
por 28.09.2017 / 08:31