使用Ruby设置Windows桌面壁纸

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个小时,但是没有任何进展。也许这里有人可以帮忙。


当你运行这个程序时会发生什么? - AnandVeeramani
1个回答

0

我的朋友发现使用不同的图片可以解决问题。

我使用GIMP保存了我的.bmp文件,但如果使用默认的导出选项,似乎会出问题。如果在导出时勾选“不写入颜色空间信息”,它就可以正常工作。

所以代码还是没问题的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接