Problemstellung:
Nur für 32Bit Office Versionen
Manchmal möchte man ein anderes Programm im Windows in den Vordergrund holen bzw. Beenden.
Geht das in MS-Access? Ja.
Voraussetzungen:
Das Bsp ist ab A02 lauffähig
Funktionsweise:
Es sind eine Reihe von API-Funktionen erforderlich.
Diese befinden sich alle im Modul "mod_Handle" der Bsp-DB.
Mit dem Button "Tasks einlesen" wird die Function "GetWindowList" aufgerufen
Es sind eine Reihe von API-Funktionen erforderlich.
Diese befinden sich alle im Modul "mod_Handle" der Bsp-DB.
Mit dem Button "Tasks einlesen" wird die Function "GetWindowList" aufgerufen
Private Function GetWindowList(Optional bVisible As Boolean = True) ' oLSV - Ein beliebiges ListView, das die ' Informationen aufnehmen soll ' bVisible - Wenn True werden nur sichtbare Windows ' angezeigt, ansonsten alles Dim hwnd As Long Dim sTitle As String Dim lTaskID As Long Dim lStyle As Long Me.lst_Handle.RowSource = "" Me.lst_Handle.Requery ' Erstes WindowHandle holen hwnd = GetWindow(Application.hWndAccessApp, GW_HWNDFIRST) Do ' Handle auswerten und im ListView eintragen lStyle = GetWindowLong(hwnd, GWL_STYLE) lStyle = lStyle And (WS_VISIBLE Or WS_BORDER) sTitle = GetWindowTitle(hwnd) lTaskID = GetWindowTaskID(hwnd) If (lStyle = (WS_VISIBLE Or WS_BORDER)) = bVisible Then Me.lst_Handle.AddItem hwnd & ";" & lTaskID & ";" & lStyle & ";" & sTitle End If ' Nächses Handle hwnd = GetWindow(hwnd, GW_HWNDNEXT) Loop Until hwnd = 0 End Function
Diese Function liest alle Tasks in das Listenfeld ein.
Klickt man nun auf einen Eintrag in dem Listenfeld werden dien Buttons unten
aktiviert. Mit diesen ist es nun möglich den gewählten Task in den Vordergrund
zu holen bzw. zu beenden.
Das Beenden von Explorer- und IE-Fenster geht nicht.
Dateien:
Nur für 32Bit Office Versionen
Bsp-DB zum Ermitteln und Beenden von externen Programmen
ab A02
Die Zip-Datei enthält ein Version ab A02
Ähnliche Artikel
Weiterlesen...