VB-Homepage Tipp 195

Ermitteln des Handles des aktiven Fensters (Programm)

Wenn Sie auf ein Programm außerhalb Ihrer Anwendung zugreifen möchten, benötigen Sie entweder das Handle oder den Namen des Fensters.
Einen Tipp wie Sie das Handle zu allen laufenden Tasks ermitteln können,
gab es ja auch schon.

Hier aber soll dies nur mit dem aktiven Fenster geschehen, denn oftmals ist es ja entscheidend, welches Fenster gerade aktiv ist, die anderen ist eher unbekannt.
Und so ganz nebenbei können Sie damit auch die Fülle des notwendigen Sourcecodes um einiges verringern.

Für einen Test benötigen Sie wie immer ein neues Projekt, dem Sie zwei Labelobjekt (Label1 und Label2) und einen Timer (Timer1) spendieren.

In den Abschnitt
Allgemein/Deklarationen geben Sie folgende API-Deklarationen an.

Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long

als nächstes und zugleich letztes, bekommt der Timer noch die Aufgabe, das jeweils aktive bzw. im Vordergrund liegende Fensterhandle zu ermitteln und im Label auszugeben.
Dim Fenster As Long

Fenster = GetActiveWindow()
label1 = Fenster
Fenster = GetForegroundWindow()
label2 = Fenster
Das war es auch schon, lediglich Ihrem Timer müssen Sie natürlich noch einen Intervall vergeben. Wundern sie sich nicht, das beide Funktionen den selben Fensterhandle ermitteln. Logischerweise ist meist das Fenster das im Vordergrund liegt auch das Aktive. Lediglich bei einem OnTop Fenster könnte ich mir vorstellen, daß die Angaben unterschiedlich sind. Der Tipp an sich bringt Ihnen sicher nicht all zu viel, aber ohne die Angabe des Fensterhandles kommen Sie bei Projekten, zbsp. Taskhandling (verstecken,beenden) nicht weiter.


Tipp-Download

Quelle :

Zurück zur Übersichtsseite