通过脚本或批处理文件根据一天中的时间更改壁纸?

通过脚本或批处理文件根据一天中的时间更改壁纸?

我想要有两张不同的壁纸,根据一天中的时间(分别为 6 小时和 22 小时)而变化,并且只想在 22 小时后显示夜晚的壁纸,在 6 小时后和 22 小时之前显示白天的壁纸。

我没有找到可以在待机后执行此操作的程序,所以我认为使用任务调度程序运行脚本应该很容易实现。现在的问题不仅是如何实现这样的脚本,而且脚本是否应该包括时间检查或任务调度程序。我不确定在 PC 长时间处于待机状态的情况下哪个会更好。

我已经尝试了一些类似问题的脚本,并希望能够根据我的需要进行修改,但它们根本不起作用。

有人能帮助我吗?TIA。

答案1

这实际上非常简单:

  1. 右键单击桌面背景
  2. 选择“个性化”
  3. 点击“桌面背景”
  4. 将图像拖放到框中或选择“浏览”并找到图像
  5. 检查两张图片,确保早上的那张是第一张
  6. 等到凌晨 12:00,然后选择“每 12 小时更换一次图片”
  7. 享受!

答案2

使用任务计划程序并创建 VBscript 来更改壁纸。为您打算使用的每种壁纸创建一个脚本。

dim shell
Set shell = WScript.CreateObject("WScript.Shell")
wallpaper = "C:\path\to\wallpaper.jpg"
shell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", wallpaper
shell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True

将文件另存为 something.vbs 并将其添加到任务计划程序,瞧!一切就绪。

还提到,如果您在壁纸应该更改的时间关闭了计算机,则不会更改壁纸。这是错误的,因为可以将任务设置为在选定时间之后的第一次启动时运行,因此,即使计算机在应该更改的时间内处于关闭状态,一旦您启动计算机,它也会设置。要进行设置,请转到特定任务属性并进入设置选项卡。勾选窗口中的第二个框,然后就可以开始了。

对于我来说,这个脚本在 Windows 8 中运行得很好。请注意我是如何修改原始脚本以使其更短的。

来源: http://www.ehow.com/facts_7586006_script-change-desktop-background.html

答案3

我一直想这样做,然后在重新安装操作系统后,将配置调整回我喜欢的方式时又遇到了这个话题。

在查看项目后,我找到了幻灯片配置文件;(%APPDATA%/Microsoft/Windows/Themes/slideshow.ini)。此文件包含一行“ImagesRootPIDL=”,经过一番谷歌搜索后,它表明以下由字母、数字和符号组成的大字符串实际上是“uuencoded PCIDLIST_ABSOLUTE”,显然这是一种在 Windows 中以比使用路径更低的级别定位目录的方法。

总之,长话短说,当将图像添加到幻灯片目录或将幻灯片更改为新目录时,此文件似乎会发生变化。因此,我的解决方案是每天两次编写批处理文件,具体取决于 %TIME% 变量,将每个幻灯片的 .ini 复制到我的配置文件夹,并在其后附加白天或夜晚,然后用相应的幻灯片 .ini 文件覆盖主题文件夹中的 .ini 文件。

我的解决方案的一个缺点是,我现在有一个批处理文件一直在运行,虽然我猜计划任务会是一个更好的实现,并能解决这个问题,但我喜欢构建只与自己交互的东西。到目前为止,这不需要重新启动计算机或浏览器来在幻灯片之间切换,它只是在幻灯片之间的时间结束后滚动到下一个幻灯片。我还没有尝试让它失败,但运行两周对我来说似乎已经足够了。

我对 Windows 操作系统还不太熟悉,所以如果这里面有太多明显的语句,或者点击几次就可以轻松完成,我深表歉意。我认为这种事情是学习操作系统内部工作原理的最快方法,尽管我认为我可以在 Linux Bash 脚本中用大约五行来编写这个脚本,而不是四十多行的批处理巨无霸。

答案4

遗憾的是,我认为 Windows 中没有内置任何功能可以让您在无需实际注销并重新登录的情况下执行此操作。由于壁纸可以通过注册表控制,您可以构建一个批处理文件来修改注册表项 - 但直到您注销并重新登录后,才能看到对壁纸本身的更改。您可以尝试使用第三方应用程序,例如:http://download.cnet.com/Automatic-Wallpaper-Changer/3000-2336_4-10560884.html

希望这可以帮助。

相关内容