http://www.perlmonks.org?node_id=355073

A simple method of doing a screen capture on Windows.

For a more flexible approach see Win32::Screenshot

#!/usr/bin/perl -w use strict; use Win32::Clipboard; use Win32::GuiTest 'SendKeys'; # Send "Print Screen" key to Windows. SendKeys('{PRTSCR}'); # Get the image from the clipboard. my $screen = Win32::Clipboard::GetBitmap() or die "No image captured: $!\n"; # Print the image to a file. open BITMAP, "> screen.bmp" or die "Couldn't open bitmap file: $!\n +"; binmode BITMAP; print BITMAP $screen; close BITMAP; __END__ # # Or to capture a specific Window: # #!/usr/bin/perl -w use strict; use Win32::Clipboard; use Win32::GuiTest qw(FindWindowLike SetForegroundWindow SendKeys); # Find a specific Window my @windows = FindWindowLike(0, qr/^Microsoft Excel/, qr/^XLMAIN$/); for (@windows) { SetForegroundWindow($_); SendKeys('%{PRTSCR}'); # Alt Print Screen } # Get the image from the clipboard. my $screen = Win32::Clipboard::GetBitmap() or die "No image captured: $!\n"; # Print the image to a file. open BITMAP, "> screen.bmp" or die "Couldn't open bitmap file: $!\n +"; binmode BITMAP; print BITMAP $screen; close BITMAP; __END__