正如你所知,自从几个版本以来,Windows允许你设置多个自动旋转壁纸。我正在创建一个程序来同步我的电脑上的壁纸,我想知道是否可能不仅设置一张壁纸(因为很多帖子都是关于如何设置一张),而是设置多张,就像我去到“个性化” > “壁纸” > “选择多个”那样。
当然,我可以使用定时器来更改它,但这会使软件变得更重,如果Windows有一种正确的方法来做这件事,那将会更好。
当然,我可以使用定时器来更改它,但这会使软件变得更重,如果Windows有一种正确的方法来做这件事,那将会更好。
正如 Reza Aghaei 在评论中提到的,从 Windows 8 开始,您可以使用 IDesktopWallpaper::SetWallpaper
COM 调用 来编程设置每个监视器的壁纸。
实际上,在关于不同主题的问题(如何在只知道 COM 接口的情况下实例化实例)的答案中,给出了一个完整的示例:
而那个答案又归功于一个开源项目:
SPI_SETDESKWALLPAPER
和SystemParametersInfo
,但这并不能帮助你很多。你甚至没有选择指定显示样式(如平铺、拉伸、居中等)的选项。似乎唯一的选择是直接编辑注册表——唉! - Cody Gray - on strikeC:\Users\Thomas\AppData\Roaming\Microsoft\Windows\Themes
的密钥,而该文件夹只包含一张壁纸,不是两张(我设置了两张壁纸)...所以我猜我得找其他方法。 - Thomas KowalskiIDesktopWallpaper
接口来实现。 - Reza Aghaei