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

  • Bonita BPM 7 is here! And for you, an in-depth tour of its innovation. In this webinar, we'll guide you through the brand-new features of this release and demonstrate them live. You will: Discover how business application implementation and maintenance is now even easier, with decoupling of process logic, business data and user interface Learn how to create "living applications" for business processes which present business data in custom views We recommend that you watch the half-hour recording of our …

  • Live Event Date: July 22, 2015 @ 2:00 p.m. ET / 11:00 a.m. PT Today's increasingly mobile workforce creates new challenges for organizations that rely heavily on collaboration. Businesses need to be both secure and collaborative, and they can't sacrifice one over the other. The plethora of devices and clouds used by mobile employees only complicates these challenges. Attend this eSeminar and learn how your business can enable mobile access to files from anywhere while it helps to maintain information …

Most Popular Programming Stories

More for Developers

RSS Feeds

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