Determining the Active Window

This small project demonstrates how to find the active window on the windows desktop. It uses a timer control to fire events every 10th of a second to use the windows GetForeGround window API call to determine the window, and then the GetWindowText api call to get that windows caption.

In the example project, all window captions are printed to the debug window, although you could quite easily watch for any window being activated and then monitored in the background using this method.


'
' In a form, with a Timer control (timer1)
'
private Declare Function GetForegroundWindow Lib "user32" () _
        as Long
private Declare Function GetWindowText Lib "user32" _
    Alias "GetWindowTextA" (byval hwnd as Long, _
       byval lpString as string, byval cch as Long) as Long
'
private Sub Form_Load()
    Timer1.Interval = 100
End Sub
'
private Sub Timer1_Timer()
    static lHwnd as Long
    Dim lCurHwnd as Long
    Dim sText as string * 255
'
    lCurHwnd = GetForegroundWindow
    If lCurHwnd = lHwnd then Exit Sub
    lHwnd = lCurHwnd
    If lHwnd <> hwnd then
        Caption = "ActiveWidow: " & Left$(sText, _
            GetWindowText(lHwnd, byval sText, 255))
    else
        Caption = "ActiveWindow: Form1"
    End If
End Sub
'
'

Download zipped project (3k)


Comments

  • A little alteration

    Posted by david on 11/28/2012 02:07pm

    could this be used with something like a sendkeys program to automate sending keystrokes to a program. And will some post an example.

    Reply
  • How to know the EXE filename linked to the active windows?

    Posted by rei_vilo on 09/26/2004 05:54am

    Great code to know the active window, it works fine... but how to get the EXE filename of the app of this active windows ? Thanks!

    Reply
  • How do I determine for specific application whether it is runnign or close?

    Posted by Legacy on 11/05/2003 12:00am

    Originally posted by: Mamta Shah

    Please help me in order to determine if I looking for specific vb application that is running or Closed.

    Thanks,
    Mamta

    Reply
  • x

    Posted by Legacy on 06/24/2002 12:00am

    Originally posted by: kishore

    i want to capture , the form, event name when ever it gives error message while running vb project

    with regards
    kishore

    Reply
  • Very useful

    Posted by Legacy on 04/27/2002 12:00am

    Originally posted by: Serdar GERE

    That's very useful and simple code. thanks.

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Lenovo recommends Windows 8 Pro. "I dropped my laptop getting out of the taxi." This probably sounds familiar to most IT professionals. If your employees are traveling, you know their devices are in for a rough go. Whether it's a trip to the conference room or a convention out of town, any time equipment leaves a user's desk it is at risk of being put into harm's way. Stay connected at all times, whether at the office or on the go, with agile, durable, and flexible devices like the Lenovo® …

  • On-demand Event Event Date: August 27, 2015 With the cloud enabling companies to spin up servers and stand up data stores more quickly, mobile apps can be created faster, reducing the time-to-value. But three major obstacles stand in the way for many organizations: The backlog of app project requests confronting every enterprise regardless of their internal app development capabilities Finding and employing better, faster tools to speed and simplify the process of developing those apps. The emergence of …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date