Ermitteln und Beenden von externen Programmen

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 A07 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
 
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.
 
Downloads:
Datum12.08.2026
Dateigröße 23.6 KB
Download 1.472
 

Wir verwenden Cookies

Wir verwenden Cookies, um Ihr Surferlebnis zu verbessern und den Website-Verkehr zu analysieren. Bitte wählen Sie aus, welchen Cookie-Kategorien Sie zustimmen möchten.