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?
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.
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.