my $activeWindow; sub Window1_Activate { $activeWindow = $Window1; } sub Window2_Activate { $activeWindow = $Window2; } sub Window3_Activate { $activeWindow = $Window3; } # and so on... #### my $checkActive = $Window1->AddTimer( -name => "checkActive", 10 ); # note: 10 milliseconds means 100 times/second sub checkActive_Timer { $activeWindow = Win32::GUI::GetForegroundWindow(); }