Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

create a listener in Win32::GUI

by Foggy Bottoms (Monk)
on Jun 11, 2003 at 16:04 UTC ( #265082=perlquestion: print w/replies, xml ) Need Help??

Foggy Bottoms has asked for the wisdom of the Perl Monks concerning the following question:

I'm currently developing a win32::GUI based application where I want to track window events. I want to know which is the active window at any time.

The code for this is the following

What I want is to save the value it returns when it changes. For the time being, I'm using the following bit of code :
The best thing would be to write a listener that'd be triggered when there's an active window changed. Does anyone have an idea ? Thanks guys.

Replies are listed 'Best First'.
Re: create a listener in Win32::GUI
by dada (Chaplain) on Jun 11, 2003 at 16:43 UTC
    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

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://265082]
Approved by VSarkiss
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2022-05-16 12:37 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (63 votes). Check out past polls.