Hej! Du bör göra det med något API. En bra länk: Har skrivit den själv. Testat lite snabbt. Verkar fungera som den ska.Kolla om programmet är i fokus....
Man kan ju kolla vilket av de formar som är i focus med Form_GotFocus eller Form_LostFocus men hur kan man se om ens program är i fokus jämtemot andra program som körs på datorn?
Tack på förhand.Sv: Kolla om programmet är i fokus....
http://www.allapi.net/agnet/
Kolla under "API List". GetFocus kanske kan var något?Sv: Kolla om programmet är i fokus....
Placera koden i en modul. Eller om den bara anropas från ett formulär kan du placera koden i deklarationerna för formuläret(Överst i formulrets kodfönster):
<code>
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Public Function IsAppActive() As Boolean
Dim hwnd As Long
Dim ThreadId As Long
Dim ProcessId As Long
hwnd = GetForegroundWindow()
ThreadId = GetWindowThreadProcessId(hwnd, ProcessId)
If ProcessId = GetCurrentProcessId() Then
IsAppActive = True
End If
End Function
</code>
Annars kan du fånga WM_ACTIVATEAPP med subclassing för att vet när applikationen får focus eller förlorar focus.