【问题标题】:Set multiple wallpapers?设置多张壁纸?
【发布时间】:2016-04-14 20:13:24
【问题描述】:

如您所知,从几个版本开始,Windows 允许您设置多个自动旋转的壁纸。我正在创建一个程序来在我的电脑上同步我的壁纸,我想知道是否可以不设置一个壁纸(因为很多帖子都显示了如何做),但可以设置多个,就好像我去了 Personalize > 壁纸 > 选择多个。

我当然可以使用计时器来更改它,但它会使软件变得更重,如果 Windows 有办法正确地做到这一点,那就更好了。

【问题讨论】:

  • 上次我看到这个时,用于设置壁纸的 API 非常受限。你得到的只是SPI_SETDESKWALLPAPERSystemParametersInfo 一起使用,这不会让你走得太远。您甚至无法指定显示样式(即平铺、拉伸、居中等)。似乎唯一的选择是直接编辑注册表——啊!
  • 所以基本上,在注册表的某个地方,有一个包含所有壁纸之类的键?
  • 是的。 MSDN 上有sample code。我不确定它的质量,我只是通过快速谷歌搜索找到它。但它应该让你开始。
  • 嗯,它使用了一个当前包含C:\Users\Thomas\AppData\Roaming\Microsoft\Windows\Themes 的密钥,并且该文件夹只包含一个壁纸,而不是两个(我已经设置了两个壁纸)......所以我想我必须找到别的东西。
  • 看来你可以使用IDesktopWallpaper接口来做到这一点。

标签: c# vb.net windows wallpaper


【解决方案1】:

正如 Reza Aghaei 在 cmets 中指出的那样,从 Windows 8 开始,您可以使用 IDesktopWallpaper::SetWallpaper COM call 以编程方式设置每个显示器的壁纸

实际上有一个关于不同主题的问题的完整示例(当您只知道 COM 接口时如何实例化实例):

这个答案反过来归功于开源项目

【讨论】:

    【解决方案2】:

    您可以使用 Wallpaper Engine。它允许您为每个显示器设置单独的视频,或从 Steam 创意工坊中选择一个(以及一些其他功能)。

    您可以使用现有图片制作视频并将其上传到 Wallpaper Engine。在 Steam 上是 4 美元。

    【讨论】:

    • 这个“答案”读起来更像是一个广告。您能否分享您与该程序的关系(开发人员、其他员工、用户,或者只是通过搜索找到的)?
    • 除此之外,问题还询问如何以编程方式进行。
    • 我与它没有任何关系。我真的很喜欢这个程序,它可以做他的程序可以做的所有事情,所以我认为这将是这个问题的一个很好的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多