Rubrik: Oberfläche · Fenster | VB-Versionen: VB4, VB5, VB6 | 22.06.01 |
Fokus des aktiven Fensters ermitteln und setzen Zwei nützliche Funktionen, um den Fokus (Window-Handle) des aktiven Fensters zu ermitteln und zu setzen. | ||
Autor: Pawel Kazakow | Bewertung: | Views: 34.271 |
www.pkworld.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Unser heutiger Tipp besteht aus zwei Funktionen:
- Ermitteln des Handles des aktiven Fensters
- Formular aktivieren (Fokus setzen)
' zunächst die benötigten API-Deklarationen Private Declare Function GetActiveWindow Lib "user32" _ Alias "GetActiveWindow" () As Long Private Declare Function GetCurrentProcessId Lib "kernel32" _ Alias "GetCurrentProcessId" () As Long ' Prüfen, ob aktuelles Formular aktiv ist oder nicht ' falls nicht, erhält das Formular den Fokus Public Sub Form_SetFocus(ByVal hWnd As Long) If GetActiveWindow() <> Form.hWnd Then AppActivate GetCurrentProcessId() End If End Sub
Beispiel
Erstellen Sie ein neues Projekt und plazieren Sie auf die Form1 ein Timer-Steuerelement. Setzen Sie die Interval-Eigenschaft auf 5000 (5 Sekunden). Fügen Sie nachfolgenden Code ein:
Private Sub Timer1_Timer() ' Formular aktivieren Form_SetFocus Me.hWnd End Sub
Starten Sie das Projekt und aktivieren Sie gleich danach eine andere Anwendung, so daß Ihre Anwendung den Fokus verliert. Spätestens nach 5 Sekunden sollte Ihre Anwendung den Fokus jedoch wieder erhalten.