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

  • On-demand Event Event Date: January 28, 2015 Check out this webcast and join Jeff Sloyer, IBM Developer Evangelist and Master Inventor, for a tutorial for building cloud-based applications. Using IBM's platform as a service, Bluemix, Jeff will show you how to architect and assemble cloud-based applications built for cloud scale. Leveraging the power of microservices, developers can quickly translate monolithic applications to a cloud-based microarchitecture. This hour-long session introduces the concepts and …

  • Even with today's emphasis on mobility, desktop innovation still matters. The ThinkCentre® Tiny-in-One 23 sets a new standard for transformational PC possibilities, bringing breakthrough modular all-in-one ease of use, Intel® performance, integrated security, and legendary durability together with the ThinkCentre Tiny PC family. The ThinkCentre Tiny-in-One 23 gives IT a single desktop platform that carefully balances performance, efficiency, and flexibility. The breakthrough all-in-one form factor …

Most Popular Programming Stories

More for Developers

RSS Feeds

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