#!/usr/bin/perl use Win32::API; use File::Basename; use constant SPI_SETDESKWALLPAPER => 20; use constant SPIF_UPDATEANDSENDINI => 3; use constant NULL => 0; $path = '/home/desktops/'; my @files = <"$path/*">; my $file = basename($files[rand @files]); system("convert '$path$file' /desktop.bmp"); my $syspinf = Win32::API->new('user32','SystemParametersInfo', [I,I,P,I], I) or die "Could not import function.\n"; $syspinf->Call(SPI_SETDESKWALLPAPER, 0, "C:\\cygwin\\desktop.bmp", SPIF_UPDATEANDSENDINI);