


Comment puis-je identifier et répertorier toutes les fenêtres appartenant à un processus spécifique à l'aide de C# ?
Jan 05, 2025 pm 08:13 PMIdentifier et énumérer les fenêtres d'un processus spécifique à l'aide de .NET
Trouver toutes les fenêtres créées par un processus particulier peut être une tâche précieuse pour divers fins. En utilisant C#, cela peut être réalisé efficacement en exploitant la fonction EnumThreadWindows.
Pour commencer, obtenez l'ID de processus (PID) de l'application pour laquelle vous souhaitez répertorier les fenêtres. Ensuite, appelez EnumThreadWindows pour chaque thread appartenant au processus. Cette fonction accepte un délégué de rappel qui prend un handle de fenêtre comme paramètre et renvoie true si l'énumération doit continuer. Au sein de ce délégué, ajoutez les handles à une collection.
Voici le code C# pour énumérer toutes les fenêtres appartenant à un processus :
delegate bool EnumThreadDelegate(IntPtr hWnd, IntPtr lParam); [DllImport("user32.dll")] static extern bool EnumThreadWindows(int dwThreadId, EnumThreadDelegate lpfn, IntPtr lParam); 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; }
Pour démontrer son utilisation, voici un exemple de code qui énumère l'explorateur traite les fenêtres et affiche leurs titres :
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); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quels sont les types de valeurs renvoyées par les fonctions du langage C? Qu'est-ce qui détermine la valeur de retour?

Gulc: Cibliothèque C construite à partir de zéro

C Fonction Langue Format de lettre ÉTAPES DE CONVERSION DE CAS

Quelles sont les définitions et les règles d'appel des fonctions du langage C et quelles sont les

Utilisation distincte et partage de phrases

Où est la valeur de retour de la fonction de langue C stockée en mémoire?

Comment fonctionne la bibliothèque de modèle standard C (STL)?

Comment utiliser efficacement les algorithmes du STL (trier, trouver, transformer, etc.)?
