【发布时间】:2016-04-14 20:13:24
【问题描述】:
如您所知,从几个版本开始,Windows 允许您设置多个自动旋转的壁纸。我正在创建一个程序来在我的电脑上同步我的壁纸,我想知道是否可以不设置一个壁纸(因为很多帖子都显示了如何做),但可以设置多个,就好像我去了 Personalize > 壁纸 > 选择多个。
我当然可以使用计时器来更改它,但它会使软件变得更重,如果 Windows 有办法正确地做到这一点,那就更好了。
【问题讨论】:
-
上次我看到这个时,用于设置壁纸的 API 非常受限。你得到的只是
SPI_SETDESKWALLPAPER与SystemParametersInfo一起使用,这不会让你走得太远。您甚至无法指定显示样式(即平铺、拉伸、居中等)。似乎唯一的选择是直接编辑注册表——啊! -
所以基本上,在注册表的某个地方,有一个包含所有壁纸之类的键?
-
是的。 MSDN 上有sample code。我不确定它的质量,我只是通过快速谷歌搜索找到它。但它应该让你开始。
-
嗯,它使用了一个当前包含
C:\Users\Thomas\AppData\Roaming\Microsoft\Windows\Themes的密钥,并且该文件夹只包含一个壁纸,而不是两个(我已经设置了两个壁纸)......所以我想我必须找到别的东西。 -
看来你可以使用
IDesktopWallpaper接口来做到这一点。
标签: c# vb.net windows wallpaper