Alterando o plano de fundo da área de trabalho do Windows 7

1

Eu tenho pesquisado on-line para obter uma solução em lote para alterar o plano de fundo da área de trabalho do Windows 7 Ultimate 64 bits e, depois de várias tentativas, só consegui que funcionasse uma vez, mas nunca mais ...

Estou usando isso:

SET "str=C:\Users\Jorge\Dropbox\Photos\Wallpapers79362257639.jpg"
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /f /t REG_SZ /d %str%
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

Na janela "Costumize" depois que eu corro, o novo plano de fundo aparece lá, mas o Desktop não atualiza ... por quê? Além disso, eu confirmei chave do registro também muda para o caminho da imagem, e eu tentei extensão bmp.

A parte estranha é que, se eu rodá-lo várias vezes, ele finalmente muda aleatoriamente (para a imagem correta, mas aleatoriamente ...) eu não sei por quê?

Edit: Parece que após a terceira / quarta vez executando o mesmo código, ele finalmente muda ..?

    
por SomeNickName 13.03.2014 / 03:30

2 respostas

0

Descobri que não tive chance de realizar isso perfeitamente usando apenas um arquivo de lote ... até onde meu conhecimento de lote vai, então usei o vb.net para pinvocar a função SystemParametersInfo assim:

Const SPI_SETDESKWALLPAPER As UInteger = &H14
Const SPIF_SENDCHANGE As UInteger = &H2

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "IMAGE_PATH", SPIF_SENDCHANGE)

Nota: Neste caso, a imagem não precisa ser bmp, eu testei com jpg e funcionou bem. No meu caso não há problema em usar vb.net para conseguir isso, espero ter ajudado alguém;).

    
por 13.03.2014 / 15:54
1

Deve

SET "str=C:\Users...

Seja

SET str="C:\Users...

?

    
por 13.03.2014 / 03:47