2009-03-24 6 views
0

ich mit dem Prozessmodell des IE8 bin stecken, wo ein GetWindowThreadProcessId() für meine MFC eingebetteten Fenster wird mir ein Kind geben IE PID als GetWindowThreadProcessId() für meine Containerseite gibt mir die root IE PID.Navigieren von einem Prozess, es sind Eltern

Was ist schlecht, wie ich meinen Container herausfiltern will, während Windows aufzählt.

Also ich bin auf der Suche nach einer Möglichkeit, um die PID übergeordnete eines bestimmten Prozesses zu erhalten, um aus meiner MFC-App, die Root-IE PID.

Sysinternals 'ProcessExplorer weiß, wie man das macht, Prozesse in treeview anzuzeigen, also bin ich sicher, dass es einen Weg gibt, das zu erreichen.

Antwort

1

Haben Sie seen this codeproject article oder this codeguru article?

Ich denke, die bessere Methode ist im Artikel des Codeguru.

Grundsätzlich möchten Sie das Mitglied "ULONG InheritedFromUniqueProcessId" von PROCESS_BASIC_INFORMATION. Siehe NtQueryInformationProcess und this page.

+0

Persönlich bevorzuge ich NtQueryInformationProcess und statisch gegen ntdll.dll :) –

+0

@Anton Tykhyy: stimme zu –

+0

Ich sah die Codeprojektmethode in MSDN und hoffte auf eine weniger komplizierte Lösung. Ich werde versuchen, NtQueryInformationProcess, danke für Ihre Hilfe. – Vinzz

0

Verwenden Sie ToolHelp32 Funktionen http://support.microsoft.com/kb/192986 und sortieren Sie sie als Baum.

Aber wenn Sie Fenster eingebettet haben, vielleicht Ihren Code in IE-Prozess? Welche Art von Einbettung verwenden Sie, ocx oder dll?

+0

ocx, Herr. Ich werde den NtQueryInformationProcess-Weg versuchen, danke für deine Antwort. – Vinzz

Verwandte Themen