#!/usr/bin/perl -- use strict; use warnings; use Win32::API; use vars '$SetParent'; BEGIN { $SetParent = Win32::API::->new( "user32", "SetParent", "NN", "N" ) or die "Failed to load SetParent from user32"; } sub start_embed { my ($mw) = @_; use Win32::OLE qw( in ); system 1, 'start iexplore.exe'; sleep 1; my $shell = Win32::OLE->new('Shell.Application') or die "ERROR ", Win32::OLE->LastError(); my @ies = grep { $_->FullName =~ /iexplore\.exe$/ } in $shell->Windows; for my $eye (@ies) { warn $eye; $SetParent->Call( $eye->{Hwnd}, hex( $mw->id ) ); $eye->{Offline} = 1; $eye->{Visible} = 1; $eye->Navigate('about:blank'); print $eye->Document->documentElement->{outerHTML}, "\n\n\n"; } } use Tk; my $mw = tkinit; $mw->geometry("400x400+200+200"); $mw->Button( -text => 'start embed ie about:blank', -command => [ \&start_embed, $mw ] )->pack( -side => 'top' ); MainLoop; exit;