最近作ったスクリプト

気象庁のサイトから気象衛星の画像をダウンロードして,windowsのデスクトップ画面に貼り付けるperlスクリプトを作ってみた.ActivePerl 5.8.3 上で作成.動かすためには,Image::Magick とwin32::APIをインストールしておくことが必要.手を抜いたので,C:\scripts というディレクトリがあることを前提にしている.1時間ごと画像を更新するようにしている.このスクリプトをwall.plという名前にしたとすると,"wperl wall.pl"と起動すれば,コマンドプロンプト画面を立ち上げっぱなしにしなくてすむ.

#!wperl -w

use LWP::Simple;
use Image::Magick;
use Win32::API;
use strict;

my ($file, $dir, $jpgFile, $bmpFile);
my ($systemParametersInfo);
my ($iMagick);
my ($uiAction, $uiParam, $pvParam, $fWinini);

$systemParametersInfo =
  Win32::API->new(qw(user32 SystemParametersInfo NNPN N))
    || die $^E;

$dir       = 'C:\\scripts\\';
$file      = 'sat-japan';
$jpgFile   = $dir . $file . '.jpg';
$bmpFile   = $dir . $file . '.bmp';
$uiAction  = 20;
$uiParam   = 0;
$pvParam   = $bmpFile;
$fWinini   = 1;

while(1){
  getstore("http://www.jwa.or.jp/sat/images/sat-japan.jpg", $jpgFile);
  $iMagick = new Image::Magick;
  $iMagick->Read($jpgFile);
  $iMagick->Write($bmpFile);
  undef $iMagick;
  die "file not found\n" unless (-s $bmpFile);
  print $^E unless ($systemParametersInfo->Call($uiAction, $uiParam, $pvParam, $fWinini));
  sleep 3600;
}