in reply to save browser's result to image file
I don't know if it's possible using OLE, but using Win32::GuiTest (a brilliant tool) and Win32::Clipboard it is almost trivial.
#! 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.
|
|---|