![]() |
Letztes aktives Fenster in Desktop notieren (GetForegroundWindow)
Hi
mein Code soll ständig das aktive Fenster auf Desktop notieren Durch ein Klick auf Button1 soll letzte aktive Fenster den Fokus bekommen hier ist der Code :
Delphi-Quellcode:
Der Timer soll aber nur das aktive Fenster notieren
Var
hwnd: THandle; ... procedure TForm1.Button1Click(Sender: TObject); begin hWnd := GetForegroundWindow; end; procedure TForm1.Timer1Timer(Sender: TObject); var lpRect : TRect; begin if not (GetForegroundWindow = self.Handle) and (GetForegroundWindow <> self.Handle) then begin hWnd := GetForegroundWindow; end; end; Damit ich später durch ein Klick auf Button1 das letzte aktive Fenster aktivieren kann Natürlich der Timer soll mein Programm-Fenster ignorieren Wie soll der Code sein, damit mein Ziel erreiche ? Güß |
AW: Letztes aktives Fenster in Desktop notieren (GetForegroundWindow)
Bei Delphi ist alles ein Fenster/Window.
> rate mal, warum es Windows heißt :zwinker: Auch ein Edit und ein Button sind Windows. Also darfst du nicht nur auf deine Fenster reagieren, sondern auf Alles, was zu einem Program gehört. Lösung, wenn es nur dein Hauptfenster betrifft, welches ignoriert werden soll. gefundenes Window mit deinem Fensterhandle vergleichen und wenn nicht, dann solange den Parent prüfen, bis man an oberster Ebene angekommen ist oder bis du an deinem Fenster ankommst. Sonstige Lösung: Die Prozess-ID zum Fenster auslesen und mit der deines Programmes vergleichen. PS: ein globaler Hook, welcher auf Fensterwechsel reagiert, wäre wohl auch ganzt nett, anstatt des Timers. PPS: Was soll eigentlich der doppelte Vergleichscode? |
AW: Letztes aktives Fenster in Desktop notieren (GetForegroundWindow)
Zitat:
|
AW: Letztes aktives Fenster in Desktop notieren (GetForegroundWindow)
Zitat:
Zitat:
Zitat:
|
AW: Letztes aktives Fenster in Desktop notieren (GetForegroundWindow)
GetForegroundWindow
> ![]() > dort dann auf "Window Functions" > und siehe da, es gibt ein GetParent und GetWindowThreadProcessId |
AW: Letztes aktives Fenster in Desktop notieren (GetForegroundWindow)
Jetzt kann man sich denken, wie die beiden nächsten Fragen des TE lauten *seufz*
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz