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 に答える