Existe-t-il une méthode pour récupérer uniquement les fenêtres de la barre des tâches? Je veux créer une "barre des tâches" personnalisée qui va regrouper les APP dans n'importe quel ordre (pas seulement dans l'ordre commun, comme le groupe de tâches Windows par défaut).Énumérer les fenêtres sur la barre des tâches dans Windows XP sans P/Invoke en utilisant C#
0
A
Répondre
1
Vous devrez utiliser P/Invoke. Malheureusement, il n'existe aucun moyen standard de déterminer si une fenêtre apparaîtra dans la barre des tâches (ou dans alt + tab): vous ne pouvez que deviner.
Voici un exemple assez vieux en VB: http://www.thescarms.com/VBasic/alttab.aspx
Et OnTopReplica, je mis en œuvre d'une manière similaire. Vous pouvez jeter un oeil à la source code (consultez OnTopReplica/WindowSeekers/TaskWindowSeeker.cs
).
0
Généralement, sans P/Invoke - no. Cependant, si vous ne vous souciez que des fenêtres Windows Forms gérées dans votre processus .NET, vous pouvez passer en revue les propriétés Application.OpenForms
et examiner les propriétés, en particulier Form.ShowInTaskbar
. Pour WPF, il s'agit du Application.Windows
.
Je souhaite dupliquer des éléments de la barre des tâches. Jusqu'à présent, avec p/invoke, je suis précis à deviner, mais c'est seulement des conjectures. Par exemple, la calculatrice n'est pas une fenêtre d'application. Même s'il apparaît dans la barre des tâches, je dois vérifier explicitement la chaîne "Calculatrice" qui n'est pas un bon code. J'espérais qu'il y avait un moyen de savoir à coup sûr, mais je ne peux pas le trouver. –