Ermitteln ob ein Programm Fenster aktiv ist

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
mpz
Beiträge: 505
Registriert: 14.06.2005 15:53
Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
Wohnort: Berlin, Tempelhof

Ermitteln ob ein Programm Fenster aktiv ist

Beitrag von mpz »

Hallo,

ich schreibe eine Library und möchte gerne ermitteln ob das Programmfenster welches die Bibliotheksfunktionen aufruft aktiv ist. Das mache ich mit folgenden Code. Spricht was dagegen bzw. gibt es eine bessere Lösung?

Gruß Michael

Code: Alles auswählen

ProcedureDLL MP_IsScreenActive()
  
  hWnd = GetActiveWindow_()
  hWnd2 =  GetForegroundWindow_() 
  
  If hWnd = hwnd2 
    ProcedureReturn #True
  Else
    ProcedureReturn #False
  EndIf

EndProcedure
Working on :lol: - LibSGD - MP3D Engine - 8)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Ermitteln ob ein Programm Fenster aktiv ist

Beitrag von RSBasic »

Wenn du mit "Aktiv" den Fokus eines Fensters meinst, dann würd ich lieber...

Code: Alles auswählen

If GetForegroundWindow_()=WindowID(0)
  Debug "Aktiv"
EndIf
...nutzen.
Du kannst auch das Handle deines Fenster mit FindWindow_() ermitteln.
Aber wenn dein Code einwandfrei funktioniert, kannste ja nutzen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten