Mettre un icone dans la barre des taches [Résolu]

aifzaide 41 Messages postés lundi 12 février 2007Date d'inscription 2 juin 2010 Dernière intervention - 9 avril 2007 à 02:33 - Dernière réponse : ricklekebekoi 305 Messages postés mardi 11 février 2003Date d'inscription 24 avril 2009 Dernière intervention
- 16 avril 2007 à 04:06
Bonjour,

J'aimerais que mon programme tourne continuellement meme si on clique sur la croix. C'est a dire qu'un icone se mette dans la barre des taches et que pour reouvrir mon programme on es juste a cliquer sur l'icone. (Exactement comme pour Flashget)

Merci pour votre aide.
Afficher la suite 

10 réponses

Répondre au sujet
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 9 avril 2007 à 04:28
+3
Utile
Salut, c'est la classe NotifyIcon qui affiche une icone dans le "SystemTray", après il faut jouer avec l'évènement Resize et la propriété WindowState. Tu as une exemple ici :

http://www.csharpfr.com/codes/SYSTEMTRAY-NOTIFYICON_23003.aspx
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Lutinore
ricklekebekoi 305 Messages postés mardi 11 février 2003Date d'inscription 24 avril 2009 Dernière intervention - 9 avril 2007 à 05:56
+3
Utile
1. Tu ajoute un element NotifyIcon a ton formulaire
2. Tu t'abonne à l'évenement "OnClick" de ce NotifyIcon et tu y depose "WindowState = FormWindowState.Normal" et "ShowInTaskbar=true"
3. Tu t'abonne à l'évenement "FormClosing" de ton formulaire, et tu y depose "WindowsState = FormWindowState.Minimised", "ShowInTaskbar=false" et "e.Cancel = true" sachant que e est ton paramètre EventArg
4. Je te conseil de rajouter un bouton ou un contextmenu pour fermer completement l'application, et ce il peux le faire via "Application.Exit()"

Voila

Tu peux aussi rajouter un élément ContextMenu sur ta form, et ensuite aller l'associer a la propriete"ContextMenu" de ton NotifyIcon, ce qui aura pour effet de le rendre disponible via le bouton de droit sur ton icone dans la barre des tâche.

Personellement je trouve sa super ce truc en .Net, c vraiment simple et le resultat est très intéressant.

Eric
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ricklekebekoi
ricklekebekoi 305 Messages postés mardi 11 février 2003Date d'inscription 24 avril 2009 Dernière intervention - 9 avril 2007 à 06:05
+3
Utile
Effectivement apres quelque test il faudrait Hide() & Show()  ta form, pcq sinon elle reste dispo si tu fait ALT-TAB par exemple, et la sa se met a chier un peu ... javais pas vu le lien a Lutinore, que sa réponse ... je pense que c'est l'idéal ce lien ;)

Eric
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ricklekebekoi
ricklekebekoi 305 Messages postés mardi 11 février 2003Date d'inscription 24 avril 2009 Dernière intervention - 9 avril 2007 à 17:55
+3
Utile
Vrai ... suffirait donc de mettre ....

1. Une variable a ta formulaire "StayOpen" à true
2. Dans ton bouton quitter avant le application.exit(), mettre cette var a false3. remplacer "e.Cancel true" par "e.Cancel StayOpen

Mais bon, je trouve pas ça hyper propre

Eric
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ricklekebekoi
aifzaide 41 Messages postés lundi 12 février 2007Date d'inscription 2 juin 2010 Dernière intervention - 9 avril 2007 à 16:04
0
Utile
merci beaucoup pour vos reponse je vais essayer tout ca et je vous dirais si c'est bon mais j'en doute pas :)
Commenter la réponse de aifzaide
aifzaide 41 Messages postés lundi 12 février 2007Date d'inscription 2 juin 2010 Dernière intervention - 9 avril 2007 à 17:50
0
Utile
Tout marche parfaitement sauf que je ne peux pas fermer completement l'application  meme avec Application.Exit() il passe par le FormClosing() donc ca me minimize tout mais ca ne le ferme jamais. Merci de votre aide
Commenter la réponse de aifzaide
aifzaide 41 Messages postés lundi 12 février 2007Date d'inscription 2 juin 2010 Dernière intervention - 9 avril 2007 à 18:02
0
Utile
C'est vrai que ce n'es pas super propre mais bon, je vais faire ca merci pour ton aide et t'es réponse rapide :)
Commenter la réponse de aifzaide
aifzaide 41 Messages postés lundi 12 février 2007Date d'inscription 2 juin 2010 Dernière intervention - 9 avril 2007 à 18:22
0
Utile
J'ai un dernier petit probleme ^^, si par exemple mon programme est dans la barre des taches (reduit) et que je relance mon .exe, il me genere une erreur ce qui es normal car il relance un autre programme mais moi j'aimerais qu'il lance celui qui es deja dans la barre des taches, y'as t-il une option a configurer ou autre? merci d'avance
Commenter la réponse de aifzaide
ricklekebekoi 305 Messages postés mardi 11 février 2003Date d'inscription 24 avril 2009 Dernière intervention - 9 avril 2007 à 19:01
0
Utile
Comme dit sur l'autre topic, une question posée a la fin dun topic, noté comem réponse acceptée, je doute qu'elle soit lu.

Pourtant, ta question aurait été la mienne dans quelques jours, donc la réponse m'interesse.

J'ai donc reformuler la question sur un nouveau topic
http://www.csharpfr.com/infomsg_SYSTRAY-2E-INSTANCE_918079.aspx

Eric
Commenter la réponse de ricklekebekoi
ricklekebekoi 305 Messages postés mardi 11 février 2003Date d'inscription 24 avril 2009 Dernière intervention - 16 avril 2007 à 04:06
0
Utile
Pour les archives, voila une source qui répond a ces questions



http://www.csharpfr.com/codes/APPLICATION-NE-POUVANT-ETRE-LANCE-QU-SEULE-FOIS_42201.aspx



Eric
Commenter la réponse de ricklekebekoi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.