Eu pesquisei muitos códigos, todos os quais apenas fizeram com que minha imagem de plano de fundo ficasse preta em vez de mudar para a imagem desejada. No entanto, pensei em outro código para isso. Diga-me se esse código funcionará ou não e qual é a diferença, em termos de efeito, entre esse código e o outro código que envolve o registro e o rundll32. Neste código, estou tentando alterar meu plano de fundo para uma imagem na minha área de trabalho chamada "Eye.jpg". Esse código "geralmente" funciona, mas quando eu reinicio, meu plano de fundo retorna como está. E eu realmente quero dizer "frequentemente" porque em outros momentos isso não funciona.
@echo off
xcopy /s/y "C:\Users\%username%\Desktop\Eye.jpg" "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Themes"
del C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Themes\TranscodedWallpaper
rename "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Themes\Eye.jpg" "TranscodedWallpaper"
xcopy /s/y "C:\Users\%username%\Desktop\Eye.jpg" "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Themes\CachedFiles"
del C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Themes\CachedFiles\CachedImage_1366_768_POS4.jpg
rename "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Themes\CachedFiles\Eye.jpg" "CachedImage_1366_768_POS4.jpg"
taskkill /f /im explorer.exe
start explorer.exe
pause
Este foi um dos outros códigos que não funcionaram comigo.
@echo off
call :quiet>nul 2>&1
goto :EOF
:quiet
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /f /t REG_SZ /d %windir%:\Desktop\wallpaper.bmp
reg add "HKCU\Control Panel\Desktop" /v WallpaperStyle /f /t REG_SZ /d 10
:: %SystemRoot%\System32\RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters
command-line
O Explorador Desconhecido
fonte
fonte
Respostas:
Ambos os métodos funcionarão, mas em ambos os casos, você cometeu um erro e não está funcionando por esse motivo. Vou explicar o erro e como corrigi-lo.
O item acima mudará o plano de fundo no local em que as janelas armazenam planos de fundo quando um novo plano de fundo é definido. O problema é que o Windows sempre converterá o plano de fundo em uma imagem .bmp antes de defini-la. Basicamente, você tenta substituir uma imagem no layout .jpeg que precisa do layout .bmp e assume que funciona, mas uma imagem jpg não é uma imagem bmp e, portanto, o Windows não pode carregar a imagem e faz um failback em um sólido preto. cor.
Para corrigi-lo, abra o arquivo Eye.jpg com um programa de pintura, salve-o com o layout BMP (Bitmap) e a extensão Eye.bmp, use o novo arquivo no seu script e ele funcionará.
O item acima definirá uma imagem e fará com que as janelas façam sua mágica para converter a imagem em bmp e armazená-la no local correto.
O problema é que ele está procurando% windir% \ Desktop \ wallpaper.bmp e não% userprofile% \ Desktop \ eye.jpg e, portanto, não funciona.
Coloque uma versão bmp em% windir% \ Desktop com o nome wallpaper.bmp ou altere esse caminho. Observe que, se você alterar o caminho, é possível que, se você mover o arquivo para outro lugar, seu plano de fundo fique preto na próxima reinicialização.
fonte
O método de registro não funciona o tempo todo, especialmente se a imagem não estiver no formato bmp, para que você possa tentar o meu método. Simplesmente abra a imagem desejada usando o visualizador de fotos do Windows e use um atalho de teclado para definir a imagem como papel de parede da área de trabalho.
Este é um script vbs, mas você pode usar o mesmo método usando o cmd
fonte