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 ' '