8
votes

Obtenir des poignées à toutes les fenêtres d'un processus

en C # en utilisant la classe de processus, je peux obtenir la poignée à la fenêtre principale d'un processus, mais j'ai besoin d'accéder à une fenêtre qui n'est pas la fenêtre principale de son processus. Comment puis-je obtenir la poignée à toutes les fenêtres d'un processus?

c#

0 commentaires

3 Réponses :


5
votes

the EnumChildWindows fonction pourrait vous aider à sortir . Les fenêtres enfants pourraient également avoir des enfants et ainsi de suite.

Il y a aussi GetWindow et EnumthreadWindows


0 commentaires

3
votes

p / invoquant le énumthreadwindows < / Code> fonction de User32, le rappel que vous fournissez serait donné les poignées des fenêtres d'un thread donné. Process.getCurrentProcess (). Les threads doivent vous revenir à tous les threads pertinents avec lesquels appeler énumthreadwindows . .


0 commentaires

3
votes

Vous pouvez p / invoquer getwindowtheadProcessid () pour obtenir l'ID de thread pour le fil d'interface utilisateur qui possède la fenêtre principale. De là, vous pouvez trouver toute autre fenêtre de niveau supérieur appartenant à ce fil avec énumthreadwindows () . Toutes les fenêtres enfants (commandes) appartenant à une fenêtre de niveau supérieur peuvent être trouvées avec EnumchildWindows () . Visitez Pinvoke.net pour les déclarations P / invoke nécessaires.


0 commentaires