Behandelt alle Fenster eines Prozesses

8

In C # unter Verwendung der Prozessklasse kann ich das Handle zum Hauptfenster eines Prozesses bringen, aber ich brauche Zugang zu einem Fenster, das nicht das Hauptfenster seines Prozesses ist. Wie kann ich das Handle zu allen Fenstern eines Prozesses bekommen?

    
RHicke 10.02.2010, 16:46
quelle

3 Antworten

5

Die Funktion EnumChildWindows könnte Ihnen dabei helfen. Die untergeordneten Fenster können auch untergeordnete Elemente enthalten.

Es gibt auch GetWindow und EnumThreadWindows

    
Cory Charlton 10.02.2010, 17:01
quelle
3
___ qstntxt ___

In C # unter Verwendung der Prozessklasse kann ich das Handle zum Hauptfenster eines Prozesses bringen, aber ich brauche Zugang zu einem Fenster, das nicht das Hauptfenster seines Prozesses ist. Wie kann ich das Handle zu allen Fenstern eines Prozesses bekommen?

    
___ answer2238721 ___

P / Aufruf der Funktion GetWindowThreadProcessId() von user32, Der von Ihnen angegebene Rückruf würde die Handles der Fenster für einen bestimmten Thread erhalten. EnumThreadWindows() sollte dir alle relevanten Threads zurückgeben, mit denen EnumChildWindows() aufgerufen werden kann.

    
___ qstnhdr ___ Behandelt alle Fenster eines Prozesses ___ answer2238717 ___

Die Funktion EnumChildWindows könnte Ihnen dabei helfen. Die untergeordneten Fenster können auch untergeordnete Elemente enthalten.

Es gibt auch GetWindow und EnumThreadWindows

    
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ antwort2238744 ___

Sie können P / Invoke %code% aufrufen, um die Thread-ID für den UI-Thread abzurufen, der das Hauptfenster besitzt. Von dort aus können Sie jedes andere Toplevel-Fenster dieses Threads mit %code% finden. Alle untergeordneten Fenster (Steuerelemente), die zu einem Fenster der obersten Ebene gehören, können mit %code% gefunden werden. Besuchen Sie pinvoke.net für die erforderlichen P / Invoke-Deklarationen.

    
___
Hans Passant 10.02.2010 17:04
quelle
3

P / Aufruf der Funktion EnumThreadWindows von user32, Der von Ihnen angegebene Rückruf würde die Handles der Fenster für einen bestimmten Thread erhalten. Process.GetCurrentProcess().Threads sollte dir alle relevanten Threads zurückgeben, mit denen EnumThreadWindows aufgerufen werden kann.

    
Rich Frank 10.02.2010 17:01
quelle

Tags und Links