下一个桌面背景是通过 cmd、Powershell 还是批处理?

下一个桌面背景是通过 cmd、Powershell 还是批处理?

我已将幻灯片设置为我的 Windows 10 背景。我可以右键单击桌面并选择下一个桌面背景以将其更改为下一张图片。考虑到我当前幻灯片中的随机播放设置(打开或关闭),有没有办法通过 cmd 或 powershell 执行此操作?我发现此项目位于 regedit 中,其数据

HKEY_CLASSES_ROOT\DesktopBackground\shellex\ContextMenuHandlers\DesktopSlideshow

但找不到任何方法来运行它。

我需要通过命令运行它

答案1

可以使用免费的 自动热键

Ctrl按下+时,以下脚本将切换到幻灯片中的下一张图片F10

^F10::
try if ((pDesktopWallpaper := ComObjCreate("{C2CF3110-460E-4fc1-B9D0-8A1C0C9CC4BD}", "{B92B56A9-8B55-4E14-9A89-0199BBB6F93B}"))) {
    DllCall(NumGet(NumGet(pDesktopWallpaper+0)+16*A_PtrSize), "Ptr", pDesktopWallpaper, "Ptr", 0, "UInt", 0) ; IDesktopWallpaper::AdvanceSlideshow - https://msdn.microsoft.com/en-us/library/windows/desktop/hh706947(v=vs.85).aspx
    ObjRelease(pDesktopWallpaper)
}

安装 AutoHotKey 后,将上述文本放入一个.ahk文件中并双击进行测试。您可以通过右键单击托盘栏中的绿色 H 图标并选择退出来停止脚本。要让它在登录时运行,请将其放在 的启动组中
C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

有用的 AutoHotkey 文档:

参考 : 切换到下一个背景的子程序(Windows 10)

答案2

harrymc 的更新回答以上对于其他任何努力在 AutoHotKeyV2 中实现此功能的人来说,这是您需要的代码:-

#Requires AutoHotkey v2.0
try if ((pDesktopWallpaper := ComObject("{C2CF3110-460E-4fc1-B9D0-8A1C0C9CC4BD}", "{B92B56A9-8B55-4E14-9A89-0199BBB6F93B}"))) {
        ComCall(16, pDesktopWallpaper, "Ptr", 0, "UInt", 0) 
        ObjRelease(pDesktopWallpaper)
}

相关内容