4

我想更改 Windows 中的桌面墙纸(7,如果有区别的话)。

我在下面的尝试没有成功。据我所知,它不会更改墙纸、注册表项或执行打印“0”以外的任何操作。

require 'Win32API'

SPI_SETDESKWALLPAPER = 20
SPIF_UPDATEINIFILE = 0x1
SPIF_SENDWININICHANGE = 0x2

wallpaper_path = 'C:\\test.bmp'

systemParametersInfo = Win32API.new('user32', 'SystemParametersInfo', ['I','I','P','I'], 'I')
puts systemParametersInfo.call(SPI_SETDESKWALLPAPER, 0, wallpaper_path, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE)

2 小时的谷歌搜索并没有让我到任何地方。也许这里有人可以提供帮助。

4

1 回答 1

0

我的朋友发现它可以使用不同的图像。

我使用 GIMP 保存了我的 .bmp 文件,如果您使用默认导出选项,这显然是有问题的。如果我在导出时选中“不写色彩空间信息”,它工作正常。

所以代码毕竟很好。

于 2012-11-11T06:26:42.510 回答