Obtenir la liste des fenêtres ouvertes, C#
Lors de l'installation de n'importe quelle application. En général, l'utilisateur est invité à fermer toutes les fenêtres avant de commencer l'installation. si non, l'installation s'arrête au milieu
et de demander à l'utilisateur de fermer toutes les fenêtres ouvertes.
J'ai été invité à ajouter un code dans un XXX de l'application. Lorsque l'application est en cours d'exécution et si l'utilisateur a ouvert une autre fenêtre (ex: Explorer, navigateur, word, etc..)
ensuite, l'application doit lancer une fenêtre en disant que vous avez ouvert la liste de windows.
Je requerst vous s'il vous plaît me suggérer comment faire pour démarrer en C#.
Vous devez vous connecter pour publier un commentaire.
Test ceci:
La
openWindowProcesses
devrait contient tous les ouverts de l'application qui active la fenêtre principale.J'ai mis
p.ProcessName != "explorer"
dans le où l'expression parce que l'explorer est le processus principal de l'ordinateur de Bureau et il ne doit jamais être fermé.À regarder l'exécution du processus, vous pouvez utiliser
ManagementEventWatcher
classe. Voir cette s'il vous plaît.Vous pouvez utiliser
System.Diagnostics.Process
classe pour obtenir les informations de tous les processus qui sont en cours d'exécution sur votre machine. Ensuite, vous pouvez essayer de trouver si l'application prévue et les processus en cours d'exécution ou non.Vous pouvez soit utiliser
GetProcesses()
ouGetProcessByName()
méthode. Reportez-vous ce lien msdn de référence. Je suis sûr qu'il peut être plus efficace d'atteindre le même. HTHConfigurer une boucle foreach comme cela pour énumérer plus de toutes les applications ouvertes sur votre système (qui ont une visible de la fenêtre principale)
Essayer SetWinEventHook WinAPI fonction de P/Invoke. Vous pouvez brancher
EVENT_OBJECT_CREATE
événement, mais je ne suis pas sûr à 100%. Je n'ai jamais fait en C#, uniquement en C/C++.