#!/win2k/Perl/bin/perl use Win32::API; use constant SPI_SETDESKWALLPAPER => 20; use constant SPIF_UPDATEANDSENDINI => 3; use constant NULL => 0; my $syspinf = Win32::API->new('user32','SystemParametersInfo', [I,I,P,I], I) or die "Could not import function.\n"; $syspinf->Call(SPI_SETDESKWALLPAPER, 0, $ARGV[0], SPIF_UPDATEANDSENDINI); exit; ############################################################### # This is my muddled attempts at using CoCreateInstance... :( use constant CLSID_ACTIVEDESKTOP => '{75048700-EF1F-11D0-9888-006097DEACF9}'; my $coci = Win32::API->new('ole32','CoCreateInstance', [I,P,I,I,P], I) or die "Could not import SetWallpaper.\n"; my $setwall; my $res = $coci->Call(CLSID_ACTIVEDESKTOP, undef, 0, 0, \$setwall); print "Got: `$res'\n"; print "Setwall: `$setwall'\n"; #$setwall->($ARGV[0], 0); exit;