Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 5/2015.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Titel des aktiven Fensters ermitteln

Wenn Sie den Titel des aktuellen Fensters, also beispielsweise des Access-Fensters, ermitteln möchten (s. Bild 1), benötigen Sie zwei API-Funktionen und eine VBA-Funktion, welche die beiden zum Ermitteln des Fenstertitels nutzt.

Titel des Access-Fensters

Bild 1: Titel des Access-Fensters

Diese Elemente haben wir in der Beispieldatenbank zu diesem Beitrag im Modul mdlAPI untergebracht (s. Listing 1). Die Funktion GetActiveWindowTitle ermittelt zunächst das Handle des mit der API-Funktion GetForegroundWindow ermittelten Fensters. Um nun mit der Funktion GetWindowText den Fenstertitel zu ermitteln, müssen wir zunächst eine String-Variable mit 255 Leerzeichen füllen.

Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, _
     ByVal lpString As String, ByVal cch As Long) As Long
Public Function GetActiveWindowTitle() As String
     Dim nHWnd As Long
     Dim sTitle As String
     Dim nResult As Long
     nHWnd = GetForegroundWindow()
     sTitle = Space$(255)
     nResult = GetWindowText(nHWnd, sTitle, Len(sTitle))
     GetActiveWindowTitle = Left$(sTitle, nResult)
End Function

Listing 1: Ermitteln des Titels des aktuellen Fensters

Die Funktion ersetzt dann die Leerzeichen durch den tatsächlichen Fenstertitel, behält aber die nicht ersetzten Leerzeichen bei. Das ist aber kein Problem, denn das Ergebnis der Funktion GetWindowText ist die Anzahl der zum zweiten Parameter der Funktion hinzugefügten Zeichen.

Der erste Parameter erwartet übrigens das Fenster-Handle des zu untersuchenden Fensters, der dritte die voreingestellte Größe der übergebenen String-Variablen. Das Funktionsergebnis speichert die Prozedur in der Variablen nResult. Damit kann die letzte Anweisung dem Funktionswert von GetActiveWindowTitle per Left-Funktion die relevanten Zeichen der Variablen sTitle übergeben. Ein Aufruf der Funktion etwa im Direktfenster des VBA-Editors liefert dann den Titel des aktuellen Fensters – in diesem Fall natürlich den des VBA-Fensters:

  GetActiveWindowTitle
Microsoft Visual Basic for Applications - TippsUndTricks [Aktiv] - [mdlAPI (Code)]

Um den Titel des Access-Fensters zu ermitteln, müssen Sie die Funktion etwa beim Anklicken einer Schaltfläche in einem Formular im Access-Hauptfenster aufrufen.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.