![]() |
Top/Main-Window einer Anwendung
Huhu,
ich muss an das Top/Main-Window einer bestimmten Anwendung kommen. Über FindWindow() gehts leider nicht da die Caption des Fenster variiert. Deswegen frage ich wie ich über die ProcessId der Anwendung an des "oberste" Fenster komme. Shalom EDIT: Habe gerade gelesen das es über GetWindowModuleFileName() ab Win2k nicht mehr geht. Aber es muss doch ne Alternative geben?? |
Re: Top/Main-Window einer Anwendung
folgende "Lösung" habe ich jetzt gemacht
-Alle Fenster durchlaufen -Über das HWnd den Prozess öffnen, Module enumerieren und vom ersten Modul den FileName ermitteln -wenn der dateiname des fensters mit dem gesuchten übereinstimmt -> in liste speichern -liste durchlaufen und "kleinstes" HWnd als Result zurückgeben Ich hoffe jetzt nur das das niedriegwertigste HWnd auch immer des Top Window ist... Und jetzt viel mir auch auf das man erst die Pid ermitteln könnte und an hand dieser vergleichen könnte... naja, funkt ja soweit.. Gute NAcht... :party: |
Re: Top/Main-Window einer Anwendung
FindWindow hat zwei Parameter. Man muss nicht immer unbedingt den Fenstertitel nehmen.
|
Re: Top/Main-Window einer Anwendung
Ein Prozess kann beliebig viele Top-Level-Fenster besitzen. Die richtige Lösung wäre, mit den Toolhelp-Funktionen alle Threads des Prozesses aufzuzählen und von denen jeweils mit EnumThreadWindows alle Top-Level-Fenster zu ermitteln.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 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