Como eu altero os comandos regedit do papel de parede em tempo real?

6

O que eu quero é alterar programaticamente o Desktop Wallpaper a cada poucas horas. Estou usando um arquivo de lote (.bat) e não quero usar outros idiomas ou programas, apenas o material pré-instalado com o Windows XP. Eu já fiz meu script que irá modificar valores no Registro

reg add "HKCU\Control Panel\Desktop" /v Wallpaper /d "C:\Pictures\picture1.jpg"

O problema é que o script não está tendo efeito em tempo real, mesmo com este comando:

RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True

Eu preciso reiniciar primeiro para que ele tenha efeito.

Se eu usar as Propriedades de Vídeo, elas serão exibidas imediatamente. O que eu notei é que as mudanças terão efeito em tempo real se for um arquivo .bmp e não para imagens .jpg.

A segunda opção é converter JPG em arquivos BMP de 24 bits (para parecer exatamente o mesmo, mas irá triplicar o tamanho do arquivo), mas estou esperando uma maneira melhor.

Eu já pesquisei as coisas mas não deu certo. Eu espero que você (o leitor útil) possa postar qualquer script .bat ou mesmo .vbs para mudar o Desktop Wallpaper instantaneamente com imagens JPG. Espero que haja uma resposta sem instalar outros aplicativos ou scripts.

    
por itagomo 27.06.2012 / 16:52

2 respostas

3

if i'm going to use Display Properties, it'll show at once. what i've noticed is that changes will take effect real time if it's a .bmp file and not for .jpg images.

Isso porque o Windows não suporta nada além de bitmaps para o papel de parede (sim, até mesmo no Windows 7).

Quando você define um jpeg, gif, png, etc. como papel de parede, o Windows primeiro converte-o em um bitmap, salva-o em um arquivo temporário e define o papel de parede nesse arquivo (no Windows 7, o nome do arquivo é mais indicativo disto):

In Windows XP: %appdata%\Microsoft\Internet Explorer\Wallpaper1.bmp
In Windows 7:  %appdata%\Roaming\Microsoft\Windows\Themes\TranscodedWallpaper.jpg

Por isso, tenho medo de que você primeiro precise convertê-lo em bitmap.

    
por 27.06.2012 / 17:09
1

Tente reiniciar o explorer, que reinicia o registro, o qual pode (não testado) alterar o plano de fundo sem precisar reinicializar.

Para fazer isso em lote

taskkill /im explorer.exe /f && explorer
    
por 27.06.2012 / 17:00