Como alterar facilmente o backgorund da minha área de trabalho com um arquivo em lotes no Windows 10?

-2

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
O Explorador Desconhecido
fonte
Este é um computador comercial ou da empresa?
music2myear

Respostas:

0

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.

@echo off xcopy / s / y "C: \ Usuários \% nome de usuário% \ Desktop \ Eye.jpg" "C: \ Usuários \% nome de usuário% \ AppData \ Roaming \ Microsoft \ Windows \ Temas" de C: \ Usuários \ % username% \ AppData \ Roaming \ Microsoft \ Windows \ Themes \ TranscodedWallpaper renomeie "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 "do C: \ Users \% username% \ AppData \ Roaming \ Microsoft \ Windows \ Themes \ CachedFiles \ CachedImage_1366_768_POS4.jpg renomeie "C: \ Users \% nome de usuário% \ AppData \ Roaming \ Microsoft \ Windows \ Themes \ CachedFiles \ Eye.jpg" "CachedImage_1366_768_POS4.jpg" taskkill / f / im explorer. exe iniciar pausa explorer.exe

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á.

@echo off call: quiet> nul 2> & 1 ir para: EOF: quiet reg add "HKCU \ Painel de Controle \ Desktop" / v Wallpaper / f / t REG_SZ / d% windir%: \ Desktop \ wallpaper.bmp reg add "HKCU \ Painel de controle \ Desktop "/ v WallpaperStyle / f / t REG_SZ / d 10 ::% SystemRoot% \ System32 \ RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters

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.

LPChip
fonte
Na verdade, o script funciona, mas retorna após a reinicialização. Estou falando sobre o que pensei e estava perguntando na Pergunta (o primeiro).
The Unknown Explorer
Claro, eu sei que o segundo requer uma imagem bmp, mas me pergunto por que o primeiro funciona apenas antes do reinício.
The Unknown Explorer
Essa é uma informação muito crucial. Você precisa adicionar essas informações à sua pergunta para obter boas respostas. Não sei por que só funciona uma vez.
LPChip
0

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.

Dim wShell
set wShell = createobject("Wscript.shell")
wShell.Run "cmd /c start " & Your photo path here,0,True

do
     wscript.sleep 100
loop until wShell.appactivate("Windows Photo Viewer") = true

wShell.Sendkeys  ("+{F10}")
WScript.Sleep 100
wShell.Sendkeys  "k"
wShell.Exec "taskkill /im dllhost.exe"

Este é um script vbs, mas você pode usar o mesmo método usando o cmd

TahaEltahawy
fonte