每周更换一张新的桌面壁纸

每周更换一张新的桌面壁纸

我想要做的是,例如,在 1 月 1 日,将壁纸设置为 785.png,在 1 月 8 日(或 7 天后)将其设置为 786.png,依此类推。

我尝试过指导但我意识到一遍又一遍地这样做太耗时了数百张图像。

如果需要的话,我使用 Windows 11。

谢谢。

注意:这与“根据一天中的时间设置壁纸”的问题不同。我希望它设置新图像,而不是循环显示某些图像。

答案1

基于答案,类似下面的代码应该可以工作。

Option Explicit

Dim wsh : Set wsh = WScript.CreateObject("WScript.Shell")
Dim count, wallpaper

' Path to wallpapers, excludes number and ".png" extension
wallpaper = "C:\path\to\wallpaper\"

' Get current number of wallpaper
count = wsh.RegRead("HKCU\Software\WallpaperRotate\Count")

' Add one to it
count = count + 1

' Roll around if it's bigger than 999
If count > 999 Then count = 0

' Set wallpaper in registry
wsh.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", wallpaper & count & ".png"

' Trigger wallpaper to be displayed
wsh.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True

' Save latest number of wallpaper
wsh.RegWrite "HKCU\Software\WallpaperRotate\Count", count, "REG_DWORD"

Set wsh = Nothing

需要注意的几点:

  • 这应该保存为 vbscript 文件(带.vbs扩展名)并将其放在您可以访问的地方
  • 创建一个名为 的 DWORD,HKCU\Software\WallpaperRotate\Count其值为0
  • 999在您希望它回滚到显示之前,请将其更改为正确的最大数字0.png
  • 更改壁纸路径以正确指向图片文件夹(因为C:\path\to\wallpaper\无效)。请确保包含尾随\
  • 此脚本假定每个壁纸都是 PNG 格式,如果不是这样,那么你要么将它们设为 PNG,要么修改代码
  • 此脚本假定所有文件均未以0、 so18.png和 not为前缀018.png。如果不是这种情况,您需要重命名文件或修改代码
  • 双击该脚本,如果成功,你的壁纸将会旋转
  • 一旦它开始工作,就可以安排这个脚本按照你希望壁纸旋转的频率运行

相关内容