Top.Mail.Ru
15 ма� 2026 года "И�ходники.РУ" отмечают �воё 26-летие!
Поздравл�ем в�ех прича�тных и неравнодушных � �тим �обытием!
И огромное �па�ибо в�ем, кто был и о�таёт�� � нами в�е �ти годы!

ГлавнаÑ� Форум Журнал Wiki DRKB Discuz!ML Помощь Ð¿Ñ€Ð¾ÐµÐºÑ‚у




Êàê óçíàòü, àêòèâíî ëè òåêóùåå ïðèëîæåíèå

' Îáúÿâëåíèå 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