Icone dans le systray + infobulle (api)

Soyez le premier à donner votre avis sur cette source.

Vue 17 431 fois - Téléchargée 1 548 fois

Description

Ce code permet de mettre une icone dans le systray (je sais qu'il existe déjà une classe dans le framework pour faire ça, mais c'est tellement plus professionnel de faire ça avec des API :-))

Il y a deux dossiers dans le zip, un dossier qui est la source de la classe qui permet de mettre une icone dans le systray ainsi que afficher une infobulle (il y a un .chm d'aide, qui permet de savoir comment utiliser la classe sans devoire obligatoirement la comprendre).
L'autre dossier est une source de winform, qui mets une icone dans le systray, qui affiche une infobulle ainsi qu'un menu déroulant lors d'un clique droite sur l'icone (je n'ai pas pu adapté ça dans la classe parce que je n'arrive pas a récupérer les message de la forme via son handle).

Source / Exemple :


Tout est dans le zip (il y a assez de commentaire pour que n'importe qui puisse comprendre)
Il y a aussi une fichier d'aide si vous ne savez pas comment utiliser la classe (dans le même dossier que le projet de la classe)

Conclusion :


La classe ne comprend pas la réception des callbacks pour afficher un menu déroulant lors d'un clique de l'utilisateur sur l'icone dans le systray. Je n'ai pas trouvé sur le web la solution à se problème.
J'arrive a récupérer les messages en scannant les appels à la fonction WndProc sur la form même, mais pas depuis simplement le handle de la fenêtre (l'API PeekMessage et GetMessage ne semblent pas marcher :-( ).

Autre problème, dans la source qui traite tout depuis la feuille (pas très modulable), le menu, lors du clique droite de l'utilisateur sur l'icone, se colle toujours en bas de l'écran, j'ai cherché mais je n'ai pas trouvé la solution...

Un tout grand merci a coq, qui m'a grandement aidé :-)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
C'est vrai que la qualification "plus professionnelle" n'est pas forcément très appropriée.
Après c'est toujours assez didactique de voir comment celà fonctionne réellement, pour les cas où celà deviendra vraiment nécessaire, quand la BCL standard ne fournit pas la focntionnalité voulue.
N'oubliez pas de réfléchir en .NET 1.1 quand vous regardez cette source, pas en 2.0 qui a vue la classe NotifyIcon être étendue.
Bonne continuation chez nos amis de CodeProject Kehops.
Messages postés
305
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 août 2011
5
Je serais pas tout à fait aussi violent que Kehops, mais effectivement, mon avis est qu'il ne faut mieux pas utiliser les API quand on a des solutions plus simples, et directement intégrées à .net pour faire ce qu'on a à faire.
Si demain l'API en question change, le framework s'adaptera, et donc l'appli qui utilise le framework aura évoluté aussi, mais celle qui utilise directement une API windows.... je sais pas trop. A mon avis, utiliser une API windows, c'est vraiement quand on a pas le choix... mais bon, ce n'est que mon avis.
Messages postés
25
Date d'inscription
mercredi 26 mars 2003
Statut
Membre
Dernière intervention
20 mars 2007

MDR ce site me fais délirer... "passer par les API c'est plus professionel" non mais faut arrêter là... MDR

On aura tout entendu, allé je ferme la fenêtre parceque là je suis MDR, je vais aller sur un VRAI site : codeproject.com...

Au moins on y voit pas autant de bétise!
Messages postés
305
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 août 2011
5
Il s'agit du NotifyIcon qui se trouve normallement dans ta boite à outils de composants. Pour le namespace, c'est System.Windows.Forms.
Messages postés
195
Date d'inscription
dimanche 10 février 2002
Statut
Membre
Dernière intervention
16 février 2016

bonjour,
Tu cites qu'une classe existe dans le framework pour ça.
Pourrais tu me donner le nom de cette classe ( avec le workspace tant qu'a faire ).
Merci beaucoup.
Afficher les 16 commentaires

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.