Hatena::ブログ(Diary)

Cherenkovの暗中模索にっき RSSフィード Twitter

2009-05-01

Win32::APIを使ってデスクトップの背景を変える

Vistaで動作確認。

#!/usr/bin/perl
use strict;
use warnings;
use Win32::API;
my $SPI = Win32::API->new("user32", "SystemParametersInfo", "NNPN", "N");
my $SPI_SETDESKWALLPAPER = 20;
my $IMG_PATH = "c:\\ashibe.bmp";
my $fWinIni = 0; #一時的な変更なら0。1にするとレジストリを書き換える。
   $SPI->Call($SPI_SETDESKWALLPAPER, 0, $IMG_PATH, $fWinIni);
  • このサンプルのままだとcドライブ直下にあるashibe.bmpを壁紙にします。bmpjpgファイルを壁紙にできます。
  • 画像の表示方法(拡大、中央など)は現在の設定を引き継いで画像だけ変わります。
  • レジストリを書き換えるというのは通常の壁紙を変える動作です。一時的というのは画面のプロパティで壁紙を変える画面にいくと前の壁紙に戻るということです。(ちなみにHKEY_CURRENT_USER\Control Panel\DesktopにあるWallPaper)


参考

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

トラックバック - http://d.hatena.ne.jp/Cherenkov/20090501/p5
リンク元
Connection: close