2010-12-07 3 views
5

Wie kann ich alle Fenster im Besitz eines Fensters erhalten? (nicht, es ist Kind)Über den Eigentümer und das eigene Fenster in Windows

+0

Was meinen Sie mit "im Besitz", wenn Sie nicht mein Kind meinen? – sje397

+2

Brechen Sie einfach das Fenster und springen Sie hinein. Sie halten sie normalerweise unter dem Bett. –

+1

@ sje397 - "Eigene Fenster" auf MSDN - http://msdn.microsoft.com/en-us/library/ms632599(v=VS.85).aspx#owned_windows –

Antwort

10

Sie können EnumWindows verwenden, um die Liste der Fenster abzurufen, und dann für jedes Fensterhandle GetWindow mit GW_OWNER-Flag aufrufen, um den Besitzer abzurufen. Auf diese Weise können Sie die Liste der eigenen Fenster für ein bestimmtes Fensterhandle abrufen.

Das stimmt. Ein Elternfenster ist nicht dasselbe wie das Besitzerfenster.

-2

Ich gehe davon aus, Sie meinen, Sie wollen die Fenster des Fensters, ihre Kindfenster, usw. zu bekommen. Um das zu tun, müssten Sie EnumChildWindows anrufen.

+2

Meine ursprüngliche Annahme ist, dass "(nicht sein Kind)" dies eine ziemlich dumme Antwort machen würde. Ein Teil von mir wäre nicht überrascht, wenn es nicht wäre. –

+0

Dadurch werden keine Überlappungs- oder Popup-Fenster der obersten Ebene zurückgegeben, die dem aktuellen Fenster gehören. –

+0

Da er sagte "Alle Fenster besitzen ein Fenster", nehme ich an, er meinte "Nicht nur sein Kind in seiner Frage. Getappt und Popup-Fenster erfordert durch alle Fenster iterieren und überprüfen ihren Besitzer ... was ist wahrscheinlich nicht was er wollte (obwohl ich mich irren könnte) –

2

Von here ...

Eine Anwendung kann die GetWindow Funktion mit der GW_OWNER Flag verwenden abrufen einen Griff an einen Eigentümer des Fensters.

Die documented API on MSDN. GetWindow, das mit den Ergebnissen von EnumWindows verwendet wird, wird Ihnen die eigenen Fenster geben.

+0

Ich will nicht den Besitzer, ich will alle Fenster im Besitz eines bestimmten Fensters – lovespring

+0

Entschuldigung, übersprang diesen Schritt ... Redigiert in ... aber es ist fast das gleiche wie Jesus Oliva's Antwort. –

Verwandte Themen