Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Applicationhandle eines Fensters ermitteln (https://www.delphipraxis.net/73901-applicationhandle-eines-fensters-ermitteln.html)

VizeTE 25. Jul 2006 12:27


Applicationhandle eines Fensters ermitteln
 
Hallo,

ich habe ein beliebiges Handle eines Fensters und möchte das Application-Handle des Programms ermitteln. Gibt es dazu eine einfache Lösung?

Eine Idee wäre es über "ParentWindow" sich vorzuarbeiten. Aber woher weiß ich bei der Application angekommen bin? Gibt es dann kein Parent mehr? Vielleicht gibts ja schon eine Funktion dafür?

Angel4585 25. Jul 2006 12:28

Re: Applicationhandle eines Fensters ermitteln
 
wozu genau benötigst du dieses Handle?

VizeTE 25. Jul 2006 12:34

Re: Applicationhandle eines Fensters ermitteln
 
Meine Anwendung öffnet ab und an ein Fenster.
Bevor sie das macht hole ich mir das Handle des Fensters, daß gerade den Fokus hat. Wenn es sich nicht um ein Fenster meiner Anwendung handelt minimiert sich meine Anwendung nachdem das eben geöffente Fenster geschlossen wurde.
Ich möchte also die Application-Handle des Fensters mit dem Handle meiner Application vergleichen.

Angel4585 25. Jul 2006 12:41

Re: Applicationhandle eines Fensters ermitteln
 
probiers doch mal mit Application.Handle :zwinker:

VizeTE 25. Jul 2006 12:51

Re: Applicationhandle eines Fensters ermitteln
 
Naja dann habe ich das Handle meiner Application aber mit was soll ich das vergleichen? Also brauch ich ja noch das Application-Handle des Fensters, welches im Vordergrund war.

Angel4585 25. Jul 2006 13:00

Re: Applicationhandle eines Fensters ermitteln
 
schau mal hier

Union 25. Jul 2006 13:01

Re: Applicationhandle eines Fensters ermitteln
 
Du könntest auch Dein Hauptfenster mit GetAncestor(handleDesGefundenenFensters, GA_ROOT) vergleichen.

VizeTE 25. Jul 2006 15:48

Re: Applicationhandle eines Fensters ermitteln
 
Zitat:

Zitat von Angel4585
schau mal hier

Da habe ich dann ja das Handle des Fensters und nicht der Application.

Zitat:

Zitat von Union
Du könntest auch Dein Hauptfenster mit GetAncestor(handleDesGefundenenFensters, GA_ROOT) vergleichen.

Das klingt erstmal nach dem was ich suche aber wenn ich es ausprobiere klappt es leider nicht. Wenn ich in meinem Programm noch ein Fenster geöffnet hat dann bekomme ich nicht das Handle meines Hauptfensters.

Union 25. Jul 2006 15:51

Re: Applicationhandle eines Fensters ermitteln
 
Poste mal ein Code-Gerüst. Wenn wir genau wissen, was Du machen willst können wir auch besser helfen. Wenn Du mit GetAncestor nicht weiter kommst, dann versuche es doch auf die Harte Tour mit GeModuleFileName...

Vjay 25. Jul 2006 15:54

Re: Applicationhandle eines Fensters ermitteln
 
Also wenn du prüfen willst ob das Fenster, dass vorher den Focus hatte zu deiner Anwendung gehört, machst du das am einfahcsten (meiner Meinung nach) über die Prozess ID.

Du holst dir mit getWindowThreadProcessId die Prozess Id und vergleichst diese mit der aktuellen ProzessId, sieht dann etwa so aus:

Delphi-Quellcode:
function getWindowPID( const h: integer): dword;
begin
 getWindowThreadProcessId( h, result);
end;

function gehoertFensterZuMir( const handle: integer): Boolean
begin
 result:= getWindowPID( handle) = getCurrentProcessid;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 Uhr.
Seite 1 von 2  1 2      

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