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.
In reply to Re: save browser's result to image file
by BrowserUk
in thread save browser's result to image file
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |