所以我一直在尝试使用 vbs 文件来更改我在 Windows 10 上的桌面墙纸。vbs 文件包含:
dim shell
Set shell = WScript.CreateObject("WScript.Shell")
wallpaper = "C:\Users\mypc\Pictures\wallpaper.jpg"
shell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", wallpaper
shell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
问题是它并不总是有效。它在我执行它的 10 次中大约有 1 次起作用。vbs 不会抛出任何错误。奇怪的是,注册表项实际上更改为正确的墙纸,但更改并未反映在桌面背景中,就好像它们没有关联或某些东西“卡住”了一样。关于问题可能是什么或如何调试它的任何想法将不胜感激。
您将需要触发 Windows 检查注册表项以查看它应该显示什么壁纸的事件,因为它不会一直检查注册表。
可能有几种方法可以做到这一点,但我敢打赌,将壁纸属性更改为“平铺”然后恢复到以前的状态可能会做到这一点。
经过大量挖掘,我找到了这个脚本。它使用 PowerShell 工作。它也可以更改壁纸和其他与 destktop 自定义相关的内容,并且它始终有效(至少壁纸更改部分)。如果有人感兴趣,这就是您的操作方式:执行以下操作以更改墙纸
请注意,您可能需要为 PowerShell 脚本启用远程签名。您可以通过以管理员身份打开 PowerShell 并执行以下命令来实现此目的: