使用Ruby设置Windows壁纸

时间:2012-11-11 05:00:44

标签: ruby windows winapi wallpaper

我想在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小时的谷歌搜索没有让我到任何地方。也许这里有人可以提供帮助。

1 个答案:

答案 0 :(得分:0)

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

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

毕竟代码很好。