00 Stimmen

Delphi/Lazarus: Handle des Fensters unter dem Maus-Cursor ermitteln

Frage von Gast | 08.01.2016 um 15:25

Ich würde gerne mit Delphi oder Lazarus ermitteln, welches Fenster gerade unter dem Mauscursor liegt. Das ganze sollte unter Windows laufen und zwar systemweit, also nicht nur in meiner eigenen Anwendung. Ich benötige das Handle dieses Fensters.

Ist das irgendwie möglich? Und falls ja, kann mir jemand sagen, wie das geht?

AntwortenPositivNegativ
Avatar
0Beste Antwort0 Stimmen

Zunächst musst du die aktuelle Mausposition abfragen. Das geht mit der Funktion GetCursorPos(). Anschließend kannst du die Funktion WindowFromPoint() benutzen, um das Fenster an dieser Position zu ermitteln. Hier ist ein Beispiel:

var
  ACursorPos: TPoint;
  AHandle: HWND;
begin

  if GetCursorPos(ACursorPos) then begin

     AHandle := WindowFromPoint(ACursorPos);

     if AHandle <> 0 then begin
        SendMessage(AHandle, ..., ..., ...);
     end;
  end;  

end;

Da beide Funktionen natürlich fehlschlagen können, solltest du wie in diesem Beispiel Bedingungen einbauen. Erst wenn sichergestellt ist, dass das Handle ungleich 0 ist, also ein Fenster gefunden wurde, solltest du fortfahren und das Handle benutzen. In dem Beispiel senden wir eine Message an das betreffende Fenster.
08.01.2016 um 21:13

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.