#! perl -slw
use strict;
use Win32::GuiTest qw[FindWindowLike GetWindowText SetForegroundWindow
+ SendKeys];
use WIn32::Clipboard;
my $clip = Win32::Clipboard->new();
my @windows = FindWindowLike(0, "Internet Explorer\$"); #Find it
for (@windows) {
SetForegroundWindow($_); # Make it active
sleep 2; # Give IE chance to re-draw it's window.
# Send the Alt-print screen key sequence to copy the active window
+ to the clipboard
SendKeys("%{PRTSCR}");
}
if (my $bitmap = $clip->GetBitmap()) {
local $\;
my $bmpfile = 'snapshot[' . time() . '].bmp';
open my $bmp, '>', $bmpfile or die $!;
binmode $bmp;
print $bmp $bitmap;
close $bmp;
print "Bitmap written to $bmpfile\n";
}
else {
die "Couldn't get bitmap from clipboard";
}
This code is just a throw-together and could do with much enhancment. Converting the bmp to a .png or .jpg would be a good start as the .bmp file sizes are enormous.
NOTE: As is, this will create a bmp for every window that has "Internet Explorer" at the end of it titlebar text. You may want to limit this my being more selective.
Examine what is said, not who speaks.
1) When a distinguished but elderly scientist states that something is possible, he is almost certainly right. When he states that something is impossible, he is very probably wrong.
2) The only way of discovering the limits of the possible is to venture a little way past them into the impossible
3) Any sufficiently advanced technology is indistinguishable from magic.
Arthur C. Clarke.
|