2009-06-19 8 views

Antwort

1

Es ist eine Bibliothek, die Griffe Aufzählen und Suchfenster unterstützt, die, so dass Sie das Rad nicht jedes Mal bei http://mwinapi.sourceforge.net/

gerade verfügbar ist neu erfinden müssen;)

beginnen mit

SystemWindow.AllToplevelWindows 

und dann graben Sie einfach nach unten (Blick auf Klassennamen, Prozessnamen, Titel, Dialog-IDs, was auch immer).

1

Haben Sie versucht, FindWindowEx zu verwenden?

+0

Dank war ich auf dieser Seite suchen: http://pinvoke.net/default.aspx/user32/FindWindowEx.html sieht aber sehr kompliziert. Ich werde sehen, ob ich es zur Arbeit bringen kann. –

+0

Verwenden Sie das IntPtr.Zero als Argument für das vorherige Fenster für das erste. Bewahren Sie dann eine "Last child" -Variable auf und verwenden Sie sie weiterhin, um das nächste untergeordnete Fenster abzurufen. Dann überprüfe entweder das Ende der Fensterliste oder das beabsichtigte Fenster. Dies könnte entweder in einer Weile oder für eine Schleife sein. – luiscubal

+0

Danke, aber wie finde ich die Fenstersteuerungsnamen? Ich kenne nur den Namen eines Steuerelements. –

2

Verwenden Sie FindWindowEx, um das Handle des Fensters zu finden, das Sie suchen. Sobald Sie dieses Handle haben, verwenden Sie EnumChildWindows, um das richtige Kind zu finden, das Sie benötigen. Es gibt zu viel Code, um schnell ein Beispiel zu schreiben, aber es gibt genug im Web, um zu helfen.

Von Pinvoke.net: http://www.pinvoke.net/default.aspx/user32/EnumChildWindows.html

+0

Danke, ich schaute auf den 2. Link, aber GetChildWindows geben die Kinder nicht zurück, gibt eine leere Liste zurück. Ich habe meinen App-Handle überprüft und es ist korrekt. –

Verwandte Themen