无需其他应用程序即可安排 Windows XP 壁纸更改

und*_*kor 5 scheduled-tasks windows-xp desktop-customization

理想情况下,我希望能够通过批处理文件或 VB 脚本执行此操作,因此我可以安排它在一天中的不同时间运行(夜间深色壁纸与白天浅色壁纸)。

我知道有很多应用程序可以做到这一点,但我更喜欢只让必要的应用程序在后台运行。

Joh*_*n T 6

您可以将计划任务与我刚刚编写的 VBScript 一起使用(例如,这是用于使用多个壁纸并每隔几分钟切换一次):

Randomize
Set obshell = WScript.CreateObject("Wscript.Shell")
num = Int( ( 100 - 1 + 1 ) * Rnd + 1 )
CurrentDir = "C:\Wallpapers\day\"
wallpaper = CurrentDir & "Wallpaper" & num & ".bmp"
obshell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper",wallpaper
obshell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,
UpdatePerUserSystemParameters",1,False
Set obshell = Nothing
Run Code Online (Sandbox Code Playgroud)

注意:壁纸必须是位图。如果你想避免更多的脚本来定期检查系统时间,你可以在白天和黑夜使用相同的脚本,只需创建一个单独的计划任务,并在所需的时间间隔内运行它。制作 2 个文件夹,一个用于日间壁纸,一个用于夜间壁纸,在每个文件夹中放一份脚本。您需要将100第 3 行中的内容更改为每个壁纸中有多少张壁纸,并将它们重命名Wallpaper1, Wallpaper2, etc为该脚本才能工作(或修改脚本中的名称)。还要修改CurrentDir每个值。

如果您只想使用 2 张壁纸(将其设置为每 59 分钟左右运行一次,以确保您不会错过一个小时):

Set obshell = WScript.CreateObject("Wscript.Shell")
CurrentHour = Hour(Now)
If CurrentHour = 8 Then
    wallpaper = "C:\Wallpapers\day.bmp"
ElseIf CurrentHour = 20 Then
    wallpaper = "C:\Wallpapers\night.bmp"
Else
    WScript.Quit(0)
End If
obshell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper",wallpaper
obshell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,
UpdatePerUserSystemParameters",1,False
Set obshell = Nothing
Run Code Online (Sandbox Code Playgroud)