2012-11-11 74 views
4

我想更改Windows中的桌面壁紙(7,如果這有所作爲)。使用紅寶石設置Windows壁紙

我下面的嘗試不成功。據我所知,它不會更改壁紙,註冊表項或除print'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小時的谷歌搜索沒有讓我到任何地方。也許這裏有人可以幫忙。

+0

當你運行這個時發生了什麼? – AnandVeeramani

+0

我知道了,但感謝您的幫助。 –

+0

請添加您的解決方案作爲答案。 – Ikaso

回答

0

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

我使用GIMP保存了我的.bmp文件,如果使用默認的導出選項,這顯然是有問題的。如果在導出時檢查「不要寫入色彩空間信息」,它可以正常工作。

因此,代碼是好的畢竟。