使用Ruby设置Windows壁纸

我想在Windows中更改桌面墙纸(7,如果这有所作为)。

我下面的尝试不成功。 就我所知,它不会更改壁纸,registry项或者除了打印“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小时的谷歌search没有得到我的任何地方。 也许这里有人可以帮忙。

我的朋友弄清楚,它使用不同的图像。

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

所以代码毕竟是好的。