2010-12-17 7 views
2

gibt es eine Anwendung mit 5 Fenstern. Ich habe die PID dieses Prozesses, und wie kann ich alle WindowHandles dieses Prozesses bekommen?C#: Holen WindowHandles aller Fenster von Prozessname

danke.

+1

finden die Mainwindowhandle Holen ans dann rufen [EnumChildWindows] (http://www.pinvoke.net/default.aspx/user32 .enumchildwindows) darauf. –

Antwort

0

Beginnen Sie mit einigen PInvoke Zeug beschrieben in dieser MSDN article.

0

Benutzer etwas wie folgt aus:

Process[] processes = Process.GetProcesses("."); 
foreach (var process in processes) 
{ 
    var handle = process.MainWindowHandle; 
} 
+0

ja. ich weiß das. Was ist mit den anderen 4 Fenstern? – Lzzzra

+0

ok. Sie können über alle Fenster iterieren und die Prozess-ID vom HWND abrufen und diese Prozess-ID mit der ID abgleichen, an der Sie interessiert sind. Überprüfen Sie GetWindowThreadProcessId –

1

die Mainwindowhandle holen und dann EnumChildWindows auf es nennen.

Vielleicht verwalteten Code aufrufen wird besser sein als PInvoke, können Sie mehr hier Managed Windows API