![为什么 Wallpaper.reg 在添加到批处理文件后没有执行应有的操作?](https://linux22.com/image/1583985/%E4%B8%BA%E4%BB%80%E4%B9%88%20Wallpaper.reg%20%E5%9C%A8%E6%B7%BB%E5%8A%A0%E5%88%B0%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E5%90%8E%E6%B2%A1%E6%9C%89%E6%89%A7%E8%A1%8C%E5%BA%94%E6%9C%89%E7%9A%84%E6%93%8D%E4%BD%9C%EF%BC%9F.png)
每当我在新设备上安装 Windows 时,都需要进行大量更改,这会花费大量时间。所以我想编写一些脚本来帮我完成这些工作。
过去几天,我一直在寻找可以创建/更改的注册表项,用于 Windows 10 的基本设置(更改桌面壁纸、小托盘图标等)。我找到了一些,也创建了自己的注册表项,然后将它们添加到批处理脚本中。
我对批处理脚本没有太多经验,但是我编写了一个脚本,当以管理员身份执行时,它将“获取”脚本所在文件夹中的密钥,将它们写入路径,然后停止 explorer.exe 并重新启动它以应用更改。
@echo off
reg import %~dp0TaskViewButton.reg
reg import %~dp0SearchboxTaskbar.reg
reg import %~dp0RemoveContacsFromTaskbar.reg
reg import %~dp0EnableAutoTray.reg
reg import %~dp0Wallpaper.reg
reg import %~dp0TaskbandFavorites.reg
reg import %~dp0TaskbandFavoritesChanges.reg
reg import %~dp0TaskbandFavoritesResolve.reg
taskkill /f /im explorer.exe
start explorer.exe
pause
当我执行脚本时,除 DesktopWallpaper.reg 外,所有键都成功。对于 DesktopWallpaper.reg,我创建了一个名为 System 的新键文件夹,其中包含名为 Wallpaper 的字符串值HKCU\软件\微软\Windows\当前版本\政策因为这对我来说是唯一可行的方法。
在我将其导出并放入该脚本之前,它一直有效。我向该 .reg 文件添加和更改的唯一内容是名称和 RGB 值,该值应该是壁纸的颜色。文件如下所示:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"Wallpaper"="46 141 239"
命令提示符显示该文件有错误。当我双击 .reg 文件时,它告诉我尝试访问注册表时发生错误以系统管理员身份运行。不仅如此,执行脚本还会将壁纸更改为纯黑色。在设置中访问个性化 > 背景时,它告诉我*某些设置被隐藏或由您的组织管理。
我也对此做了一些研究,并尝试使用管理控制台。显然,当 Windows 更改某些设置时,它们也应该在组策略编辑器中。我遵循了一些教程,但没有一个对我有用。一些应该在那里启用的规则“未配置”。
任何帮助都将受到感激。
答案1
该特定注册表更改不起作用的原因如下:
- 重新启动 Windows 资源管理器 (
explorer.exe
) 不会更新背景颜色,只会更新背景图像。更新背景颜色需要注销并重新登录。 您可能应该使用的键是:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Control Panel\Colors] "Background"="46 141 239" [HKEY_CURRENT_USER\Control Panel\Desktop] "WallPaper"=""
关键
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Wallpaper
似乎是:- 仅接受本地文件路径——不接受颜色或 UNC 路径。
- 覆盖
HKEY_CURRENT_USER\Control Panel\Desktop\WallPaper
。 - 通过个性化->背景限制更改壁纸。
- 要求全部
\
转义为\\