Comment avoir une seule tâche pour toutes mes fenêtres? [Résolu]

Signaler
Messages postés
19
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
9 avril 2008
-
Messages postés
19
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
9 avril 2008
-
Bonjour,

Lorsque j'ouvre une Form2 depuis une Form1 je procède ainsi :

Form2 InstanceForm2 = new Form2();
InstanceForm2.ShowDialog();

Donc je créé une instance que j'affiche ensuite.

Lorsque j'ouvre le gestionnaire des tâches je constate que j'ai une tâche par fenêtre (ou instance), ce qui me déplaît légèrement. Comment dois-je faire pour que toute les fenêtres ouvertes à partir d'une instance "Main" appartiennent à la même tâche? Pourquoi ces tâches ne prennnent-elles pas le nom de mon fichier compilé en exe?

4 réponses

Messages postés
219
Date d'inscription
jeudi 6 juillet 2006
Statut
Membre
Dernière intervention
7 septembre 2009

Tu n'as bien qu'un seul process.
Par compte, tu as plusieurs fenetres actives.
Pour ne plus voir les fenetres que tu ouvres dans la liste, indique ShowInTaskbar à false.
Resultat, ta fenetre ouverte n'apparait plus dans la barre des taches Windows, et donc plus dans la liste des taches.
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
20
salut,

il ne faut pas confondre "thread", "fenêtre" et "processus"...la liste des taches est, en gros, la liste des fenêtres de la barre des taches...à ne pas confondre avec la liste des processus...un processus peut avoir plusieurs fenêtres...le stathread ne chanegera rien...

mais je ne vois pas pourquoi tu aurais besoin de n'afficher qu'une seule fenêtre par processus dans la liste des tâches...à la limite si tu fais des boites de dialogues modales mais is tu as vraiment plusieurs fenêtres, elles apparaitront dans  la liste des tâches...

ShareVB
Messages postés
19
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
9 avril 2008

Vu le nombre de réponse je commence à douter de la clarté de ma question, alors je la repose en deux fois :

Pourquoi lorsque je lance mon appli avec :

fenetre1 InstanceFenetre1 = new fenetre1();
Application.Run(InstanceFenetre1);

c'est le nom de la fenêtre qui apparaît dans la liste des tâches et pas le nom de mon application?


Et pourquoi lorsque j'affiche d'autres fenêtres avec :

fenetre2 InstanceFenetre2 = new fenetre2();
InstanceFenetre2.ShowDialog();

elle apparaissent dans la liste des tâches comme si c'était des appli indépendante?


Je précise que je travaille sous WinCE 5.0 et que je n'ai pas de "[STAThread]" devant ma méthode "Main". Est-ce que ça a quelquechose à voir?
Je ne peux pas utiliser non plus "Application.Run();" je suis obligé de lancer au moins une fenêtre.


Merci d'avance pour les réponses, et si je n'en ai pas merci de m'en donner la raison...
Messages postés
19
Date d'inscription
mardi 26 juin 2007
Statut
Membre
Dernière intervention
9 avril 2008

J'ai cerné mon erreur. J'ai mal observé : la liste des tâches comme son nom l'indique affiche la liste des fenêtres actives et non pas la liste des processus. Les tâches ne prennent donc pas le nom de l'exécutable de mon appli mais le nom des fenêtres.

Je ne cherchais pas à avoir une fenêtre par processus mais une tâche pour toute mes fenêtres. Donc, à moins de créer une fenêtre unique bourré de champs à afficher ou cacher selon mes besoins y'a pas moyen. J'aurais autant de tâches dans la liste que de fenêtres ouvertes, mais qui ne correspondront qu'à un seul processus bien sur.

Merci pour vos réponses.