Поиск на сайте
Главная Журнал Форум Wiki DRKB Страны мира




Как узнать, активно ли текущее приложение

' Объявление 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

    

 


Основные разделы сайта


 

Реклама