in reply to create a listener in Win32::GUI

if you mean which Win32::GUI window is the active one, you can simply track this with the Activate() events. an example:
my $activeWindow; sub Window1_Activate { $activeWindow = $Window1; } sub Window2_Activate { $activeWindow = $Window2; } sub Window3_Activate { $activeWindow = $Window3; } # and so on...
if you instead mean any window on your screen (and you don't need realtime monitoring -- which will hog your CPU), then I would do it setting up a timer object:
my $checkActive = $Window1->AddTimer( -name => "checkActive", 10 ); # note: 10 milliseconds means 100 times/second sub checkActive_Timer { $activeWindow = Win32::GUI::GetForegroundWindow(); }
hope this helps...


King of Laziness, Wizard of Impatience, Lord of Hubris