use Win32::OLE; use Win32::OLE::Variant; use Win32::OLE qw(EVENTS); #reuired to capture the events use Thread qw(:DEFAULT async yield); my $RQCC = Win32::OLE->new("Excel.Application") || die "CreateObject: $!"; print "MainProcess = $RQCC\n"; # Starting to monitor event queue my $EventQueueTread = Thread->new(\&MonitorEventQueue); system "pause"; return 1; sub MonitorEventQueue { my $Devicehandle=Win32::OLE->GetActiveObject('Excel.Application'); print "MonitorEventQueue = $Devicehandle\n"; system "pause"; }