Êàê óçíàòü, àêòèâíî ëè òåêóùåå ïðèëîæåíèå
' Îáúÿâëåíèå 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
|