Wie zähle ich Windows eines bestimmten Prozesses in .NET auf?
Jan 05, 2025 pm 09:14 PMAuflisten von Fenstern eines bestimmten Prozesses in .NET
Das Finden aller von einem bestimmten Prozess erstellten Fenster ist in vielen Anwendungen eine häufige Anforderung. In .NET stehen mehrere Methoden zur Verfügung, um diese Aufgabe zu erfüllen. Ein Ansatz besteht darin, Thread-Fenster aufzuzählen, die dem Zielprozess zugeordnet sind.
Verwendung der Funktion „EnumThreadWindows“
Die Funktion „EnumThreadWindows“ aus der Bibliothek „user32.dll“ ermöglicht die Aufzählung aller zugehörigen Fenster ein bestimmter Thread. Um Fenster eines bestimmten Prozesses aufzuzählen, können Sie seine Threads durchlaufen und EnumThreadWindows für jeden Thread aufrufen.
Code-Implementierung:
Der folgende Delegat wird als Rückruf verwendet in EnumThreadWindows:
delegate bool EnumThreadDelegate(IntPtr hWnd, IntPtr lParam);
Das folgende Codefragment listet die Fensterhandles von auf ein Prozess unter Verwendung seiner Prozess-ID (PID):
static IEnumerable<IntPtr> EnumerateProcessWindowHandles(int processId) { var handles = new List<IntPtr>(); foreach (ProcessThread thread in Process.GetProcessById(processId).Threads) EnumThreadWindows(thread.Id, (hWnd, lParam) => { handles.Add(hWnd); return true; }, IntPtr.Zero); return handles; }
Beispielverwendung:
Um die Verwendung zu demonstrieren, können Sie die Fenstertitel abrufen und ausdrucken Konsole:
private const uint WM_GETTEXT = 0x000D; [DllImport("user32.dll", CharSet = CharSet.Auto)] static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, StringBuilder lParam); [STAThread] static void Main(string[] args) { foreach (var handle in EnumerateProcessWindowHandles( Process.GetProcessesByName("explorer").First().Id)) { StringBuilder message = new StringBuilder(1000); SendMessage(handle, WM_GETTEXT, message.Capacity, message); Console.WriteLine(message); } }
Das obige ist der detaillierte Inhalt vonWie zähle ich Windows eines bestimmten Prozesses in .NET auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

GULC: C -Bibliothek von Grund auf neu gebaut

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

eindeutiger Gebrauch und Phrasenfreigabe

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?
