Placer l'icone de son application dans le systray, c'est simple

Soyez le premier à donner votre avis sur cette source.

Vue 9 278 fois - Téléchargée 1 374 fois

Description

Le problème est abordé de manière basique, sans les fioritures techniques qui embrouillent le néophyte (dont je fais partie ;).
Car souvent, il n'y a pas besoin de plus : il s'agit que le programme soit invisible au démarrage, tourne en tâche de fond, et puisse être appelé depuis le System Tray.
Pour rester dans la simplicité, je me contente d'utiliser l'icone principale de l'application, et son titre qui apparait en info bulle au passage de la souris sur la TrayIcon.
Un simple clic droit sur l'icone fait apparaître le menu, un double-clic fait apparaitre la fiche principale.
N'hésitez pas à lire les commentaires (dans le zip), j'ai fait un effort d'explication (quand je pouvais...), et une fois assimilé le fonctionnement de base, on ne peut qu'être incité à aller plus loin.
Pour revenir au code, j'ai épuré un maximum, car si l'on trouve "moult" pages sur le net concernant le sujet (surtout anglo-russo-germanophones), pas mal de ces codes sont encombrés de déclarations redondantes (donc inutiles) qui les rendent confus, ou leur technicité peut rebuter un non initié.
Une mention particulière pour le travail de NoNo40 (sur ce site et sur Developpez.com), dont le travail explicatif compense la complexité du propos, et en français, please... Merci à lui.
Voilà, il ne restera plus qu'à lancer votre programme au démarrage en utilisant la base de registre, et votre appli aura rejoint le niveau "pro" ;)

Source / Exemple :


Commentaires et code dans le zip

Conclusion :


Fait sous Delphi 4 Professionnel - Build 5.108 (qui a dit "ça nous fait une belle jambe" ?)
Enfin, bref, compilable avec une "vieille" version de Delphi ;)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Toshiiro
Messages postés
9
Date d'inscription
mardi 28 avril 2009
Statut
Membre
Dernière intervention
3 mai 2009
-
10/10 merci pour cette excellente source qui m'a été super utile :D.
cs_pebayart
Messages postés
17
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
6 février 2014
-
Excellent merci pour cette source.
jmp77
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
4 -
Tres bonne source.

Bravo.

Bonne continuation sur le réseau.
croustibat82
Messages postés
79
Date d'inscription
jeudi 6 novembre 2003
Statut
Membre
Dernière intervention
29 juin 2004
-
ça va, c'est bien codé (tellement bien que je n'y comprends rien lol) je crois que je vais m'en servir!
ronchon_sama
Messages postés
15
Date d'inscription
dimanche 26 octobre 2003
Statut
Membre
Dernière intervention
4 juillet 2005
-
Merci pour ce code simple et efficace. Je l'ai utilisé dans mon application 'ScreenSource'.
Il existe aussi une nouvelle version qui permet d'étendre le titre et d'afficher des infos-bulles:
TNotifyIconDataEx = record
cbSize: DWORD;
Wnd: HWND;
uID: UINT;
uFlags: UINT;
uCallbackMessage: UINT;
hIcon: HICON;
szTip: array[0..127] of AnsiChar dwState: DWORD;
dwStateMask: DWORD;
szInfo: array[0..255] of AnsiChar;
uTimeout: UINT; // union with uVersion: UINT;
szInfoTitle: array[0..63] of AnsiChar;
dwInfoFlags: DWORD;
end;

Merci encore. 10/10

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.