通过脚本 Windows 8.1 根据一天中的时间更改桌面背景

通过脚本 Windows 8.1 根据一天中的时间更改桌面背景

您好,这是我第一次使用这个网站,所以我希望我没有以错误的格式提问。

无论如何,正如标题所说,我有一个类似的问题不久前已回答过的一个帖子它有答案,但当我尝试运行它进行测试时,它无法在运行 Windows 8.1 的计算机上工作。我确信我按照说明更改了图像所在的路径,我想知道我必须更改什么才能使其工作,或者代码是否完全没问题,我可能只是在某个地方搞砸了。

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

我也尝试过原始代码但我最终收到一条错误消息,提示系统找不到最后一行代码中指定的文件。

任何帮助将不胜感激!

答案1

这是错误的答案,不应使用:

此脚本模拟右键单击图片并按“设置为桌面背景”。脚本用法应该很清楚SetWallPaper "directory to picture", "filename of picture", "name context menu to run"

'File encoding should be in ANSI
SetWallPaper "C:\icons\", "Potato-icon.png", "Set as desktop &background"

Sub SetWallPaper(WallPaperFolder, WallpaperFile,VerbName)
dim objShell, objFolder, objFolderItem, objVerb, colVerbs
Set objShell = CreateObject("Shell.Application")
set objFolder=objShell.NameSpace(WallPaperFolder)
set objFolderItem=objFolder.ParseName(WallPaperFile)
set colVerbs=objFolderItem.Verbs
for each objVerb in colVerbs
    'msgbox objVerb ,0, "Press CTRL+C for copy text" 'uncomment for debug names in contextmenu
    if objVerb=VerbName then
        'x=msgbox(objVerb ,0, "omg found")
        objVerb.DoIt
        'Without the sleep command the change never takes effect on Win7.
        wscript.sleep(2000)
        wscript.quit
    end if
next
End Sub

如果您的 Windows 在右键单击图片时“设置为桌面背景”的名称不同:

  • 您应该取消注释行(删除单引号)对于 colVerbs 中的每个 objVerb
  • 然后运行脚本并找到(按 ENTER 键输入下一条消息)与您的语言相等的字符串“设置为桌面和背景”,然后按 CTRL+C 保存消息。
  • 打开记事本并按 CTRL+V 粘贴消息。将此名称复制到脚本。

基于

如果你没有犯错的话至少在 Windows 7 中可以工作。

相关内容