使用Win API设置壁纸

Vio*_*ffe 2 windows winapi wallpaper

我想以编程方式设置壁纸.这是迄今为止我发现的唯一解决方案:

SystemParametersInfoW(SPI_SETDESKWALLPAPER, 1, (void*)wallpaperImageFilePath.utf16(), SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何告诉Windows我希望壁纸图像居中(未调整大小)?上述解决方案始终将图像设置为拉伸模式.据MSDN称,没有标志可供选择SPI_SETDESKWALLPAPER.

the*_*heB 8

从 Windows 8 开始,现在有一个用于设置桌面背景的已发布界面。具体IDesktopBackground::SetWallpaper方法。MSDN 文档

该界面还有多种获取和设置幻灯片配置的方法,以及获取所需的监视器设备路径。


Rem*_*eau 5

没有用于设置壁纸方向的API函数.您必须直接转到注册表,特别是密钥"WallpaperStyle""TileWallpaper"HKEY_CURRENT_USER\Control Panel\Desktop.请参阅此文章以获取示例:

设置桌面壁纸(CppSetDesktopWallpaper)