Description: 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__