答案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
。如果不是这种情况,您需要重命名文件或修改代码 - 双击该脚本,如果成功,你的壁纸将会旋转
- 一旦它开始工作,就可以安排这个脚本按照你希望壁纸旋转的频率运行