Как узнать, активно ли текущее приложение
' Объявление API функций
'
Private Declare Function GetForegroundWindow Lib “user32”
() As Long
Private Declare Function GetWindowThreadProcessId Lib
“user32” _
(ByVal hwnd As Long, lpdwProcessId As Long) As Long
' Если приложение активно, то его заголовок синий и окно на переднем плане
' Если не активно, то заголовок серый и окно на заднем плане
'
Function IsActiveApp(frm As Form) As Boolean
Dim RunningAppProcessID As Long
Dim CurrentProcessID As Long
' Получаем ProcessID запущенного приложения через форму VB
GetWindowThreadProcessId frm.hwnd, RunningAppProcessID
' Получаем ProcessID активного окна
GetWindowThreadProcessId GetForegroundWindow(), CurrentProcessID
' Возвращаем True если оба ID совпадают
IsActiveApp = (RunningAppProcessID =
CurrentProcessID)
End Function
' для тестирования функции помещаем таймер на новую форму
'
Private Sub Timer1_Timer()
If IsActiveApp(Me) Then
Me.Caption = Time & “ “ & App.Title &
“ is Active”
Else
Me.Caption = Time & “ “ & App.Title &
“ is Inactive”
End If
End Sub
|