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__