如何使用 Windows 10 中的批处理文件轻松更改桌面背景?

如何使用 Windows 10 中的批处理文件轻松更改桌面背景?

我搜索了很多代码,但都只能使我的背景图像变黑,而不是变成我想要的图像。不过,我想到了另一个代码。请告诉我这个代码是否有效,以及在效果方面,这个代码与涉及注册表和 rundll32 的其他代码有什么区别。在这个代码中,我试图将我的背景更改为桌面上名为“Eye.jpg”的图片。这个代码“通常”有效,但当我重新启动时,我的背景会恢复原样。我的意思是“通常”,因为在其他时候它根本不起作用。

@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

这是对我来说不起作用的其他代码之一。

@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

答案1

注册表方法并不总是有效,特别是当图片不是 bmp 格式时,所以你可以试试我的方法。只需使用 Windows 照片查看器打开你想要的图片,然后使用键盘快捷键将图片设置为桌面壁纸即可。

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"

这是一个 vbs 脚本,但您可以使用 cmd 使用相同的方法

答案2

这两种方法都可以,但在这两种情况下,你都犯了一个错误,因此它无法正常工作。我将解释错误以及如何修复它。

@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 重命名 "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 重命名“C:\Users\%用户名%\AppData\Roaming\Microsoft\Windows\Themes\CachedFiles\Eye.jpg” “CachedImage_1366_768_POS4.jpg” taskkill /f /im explorer.exe 启动 explorer.exe 暂停

当设置新背景时,上述操作将在 Windows 存储背景的位置更改背景。问题是,Windows 总是会在设置背景之前将其转换为 .bmp 图像。您基本上尝试将 .jpeg 布局中的图像替换为需要 .bmp 布局的图像并假设它可以工作,但 jpg 图像不是 bmp 图像,因此 Windows 无法加载图像并恢复为黑色纯色。

要修复此问题,请使用绘图程序打开您的 Eye.jpg 文件,使用 BMP(位图)布局并将其保存为 Eye.bmp 扩展名,然后在您的脚本中使用新文件,它就会起作用。

@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

上述命令将设置一个图像并让窗口发挥其魔力,将图像转换为 bmp 并将其存储在正确的位置。

问题是,它正在寻找 %windir%\Desktop\wallpaper.bmp 而不是 %userprofile%\Desktop\eye.jpg,因此它不起作用。

要么将 bmp 版本放置在 %windir%\Desktop 中,名称为 wallpaper.bmp,要么更改该路径。请注意,如果您更改路径,则将文件移动到其他地方时,您的背景可能会在下次重新启动时变黑。

相关内容