Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

OCX POUR GÉRER LE SYSTRAY SUPER FACILEMENT !!! SI, SI JETEZ UN OEIL VOUS VERREZ


Information sur la source

Catégorie :Control Classé sous : systray Niveau : Initié Date de création : 13/02/2004 Vu / téléchargé: 7 230 / 2 145

Note :
8,53 / 10 - par 36 personnes
8,53 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (31)
Ajouter un commentaire et/ou une note

Description

et bien c'est simple
vous paramétrez l'icone et le texte a afficher dans le systray
et puis MonIcone.Icone_ADD et hop il est mis
vous reparamétrez l'icone et le texte a afficher dans le systray
MonIcone.Icone_MODIFY et hop il est modifié
vous voulez le supprimer, rien de plus simple
MonIcone.Icone_DELETE

ok , ça c'était pour les actions mais comment récupérer un clicl droit sur l'icone du systray par exmple?
rien de plus simple , le systray est géré désormais comme un control a part entière donc pour notre exemple:

Private Sub MonIcone_Click(ByVal Button As Long)
    
    If Button = 1 Then
        PopupMenu MenuPop
    End If
    
End Sub

pour info:
bouton gauche : Button = 0
bouton droit : Button = 1
bouton du milieu : Button = 2

pour les évenements voici la liste:
click
double click
mousedown
mouseup

voilà je pense que cela peut servir a bcp d'entre vous ;-)

n'oubliez pas la petite note ça prend 2secondes et votre avis (ok c'est un peu plus  long mais c'est toujours intéressant de savoir ce que pense les autres de son code)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de Golog le 14/02/2004 13:10:02

Avait déja vu sur le site, c po innovant ... mais bon c bien de le rappeler

signaler à un administrateur
Commentaire de yomm le 14/02/2004 14:52:39

ok désolé j'avais cherché l'info fut un temps et j'avais pas trouvé...
je ai eut besoin ces jours ci et je me suis dis que j'allais le faire....
soit entre temps quelqu'un l'a fait ....

signaler à un administrateur
Commentaire de kimmelf2 le 14/02/2004 23:35:23

moi j'aime bien alors je met 9 vu que ca va m'aider :-)

signaler à un administrateur
Commentaire de yomm le 15/02/2004 00:46:30

merci a toi ;-)

signaler à un administrateur
Commentaire de NeoToto le 23/02/2004 15:35:18

Un 9 aussi, vu que ca risque d'etre pas mal de temps de gagné. Merci !
(De toute facon, si ca marche pas, je reviens et je met 0 :)

signaler à un administrateur
Commentaire de mythic_kruger le 03/03/2004 02:21:28

Je viens de l' essayer c'est vraiment cool!
Juste un petit truc, j' ai laissé tourner l' appli pendant un moment dans le systray, et lors de la mise en veille du moniteur, impossible de revenir dans windows: gros crash et reboot (sans scandisk). Aurais-tu une idée? Sans ça c'est super!

signaler à un administrateur
Commentaire de tmcuh le 17/05/2004 12:53:12

Très bien rien à dire, j'ai vu une autre source dessus, mais bon je me suis pas amuser à voir qui la fait en premier (jeux de gamin)...je te mets 10 meme si c'est pas toi qui l'as fait :D ...le principale c'est que cà me vient à point
Bonne continuation

signaler à un administrateur
Commentaire de wolfcyber le 29/05/2004 15:18:15

Tres bien, vraiment, 8/10

signaler à un administrateur
Commentaire de yomm le 30/05/2004 12:32:10

merci a bous

signaler à un administrateur
Commentaire de Aramiil le 06/06/2004 22:41:23

félicitation, j'aime beaucoup!

signaler à un administrateur
Commentaire de shakaka le 13/08/2004 16:02:02

Merci pour ce prog Yomm mais j'ai un souci.Je souhaiterais utiliser le projet2.vbp sur un poste qui n'a pas VB6 en le transformant en .EXE mais cela ne fonctionne pas alors que avec d'autres prog j'arrive a les faire marcher.Il me met un msg d'erreur sur le fichier "yommsystrayocx.ocx ou une de ses dependances introuvable ou incorrect".Pour info j'ai pris soin  de copier le fichier yommsystrayocx sur le poste.

Merci pour ton aide

signaler à un administrateur
Commentaire de yomm le 13/08/2004 20:04:13

où l'as tu copié ?
2 solutions :
-1) tu le mets dans le même répertoire ke le fichier exe
-2) dans le répertoire system de windows (system/system32 selon l'OS)

Sinon , il est peut etre nécessaire de recompiler l'ocx ...mais s'il marche sur d'autres postes, je pense que l'une des 2 premières solutions devrait sufir.

@+

signaler à un administrateur
Commentaire de ScSami le 30/01/2005 00:45:45

Commentaire tardif...

Vraiment très bien...

10/10

Heureusement qu'il y a Yomm :-)

signaler à un administrateur
Commentaire de fredericmichel le 03/08/2005 11:18:41

Très bien, merci à toi.

signaler à un administrateur
Commentaire de patrick le 01/03/2006 09:19:29

p'tit truc pour que le menu du systay "disparaise" sans être obligé de cliquer obligatoirement dans l'un de ces items : rajouter un SetForegroundWindow avant l'appel du menu ! soit :

Private Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long

Private Sub MonIcone_Click(ByVal Button As Long)
  If Button = 1 Then
   SetForegroundWindow Me.hWnd
   PopupMenu MenuPop
  End If
End Sub

A+ Patrick
http://jeux.cartes.free.fr

signaler à un administrateur
Commentaire de _deadstar_ le 09/03/2006 10:43:31

super merci beaucoup pour ton aide ! ^^

signaler à un administrateur
Commentaire de fdiedler2000 le 07/07/2006 19:41:38

c'est possible de mettre un texte dans l'icon du systray ??

signaler à un administrateur
Commentaire de patrick le 12/07/2006 23:25:11

j'ai un bout de code qui affiche la température CPU dans l'icon. Tous le code n'est pas de moi...

Le principe est d'utilisé un control ImageList, et de modifier l'une des images.

VERSION 5.00
Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "comctl32.ocx"
Begin VB.Form Form1
   BackColor       =   &H80000009&
   Caption         =   "Form1"
   ClientHeight    =   2610
   ClientLeft      =   165
   ClientTop       =   555
   ClientWidth     =   3345
   LinkTopic       =   "Form1"
   ScaleHeight     =   2610
   ScaleWidth      =   3345
   StartUpPosition =   3  'Windows Default
   Begin VB.Timer Interval
      Interval        =   1000
      Left            =   1800
      Top             =   240
   End
   Begin VB.PictureBox Pictext
      Appearance      =   0  'Flat
      AutoRedraw      =   -1  'True
      BackColor       =   &H00000000&
      BorderStyle     =   0  'None
      ForeColor       =   &H00FFFFFF&
      Height          =   240
      Left            =   240
      ScaleHeight     =   16
      ScaleMode       =   3  'Pixel
      ScaleWidth      =   16
      TabIndex        =   0
      Top             =   240
      Width           =   240
   End
   Begin VB.Label Label1
      Caption         =   "Label1"
      Height          =   255
      Left            =   840
      TabIndex        =   1
      Top             =   1440
      Width           =   1575
   End
   Begin ComctlLib.ImageList imgList
      Left            =   720
      Top             =   240
      _ExtentX        =   1005
      _ExtentY        =   1005
      BackColor       =   -2147483643
      MaskColor       =   12632256
      _Version        =   327682
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Type NOTIFYICONDATA
    cbSize As Long
    hWnd As Long
    uId As Long
    uFlags As Long
    ucallbackMessage As Long
    hIcon As Long
    szTip As String * 64
End Type

Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4

Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_RBUTTONUP = &H205

Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

Dim IconeTray As NOTIFYICONDATA
Dim wbemServices As Object

'=====================================================================================================
'  Initialisation
'=====================================================================================================

Private Sub Form_Load()
  
   '- - - Connexion a WMI
  'On Error GoTo WMI_CONNECT
      Set wbemServices = GetObject("winmgmts:" & "\\localhost\root\wmi")
    On Error GoTo 0
  
   '- - - Initialisation Icon pour Systray
    imgList.ListImages.Add , , Pictext.Image
    imgList.MaskColor = Pictext.BackColor
    imgList.UseMaskColor = True
        
   '- - - Creation du Systray
    IconeTray.cbSize = Len(IconeTray)
    IconeTray.hWnd = Me.hWnd
    IconeTray.uId = 1&
    IconeTray.uFlags = NIF_TIP Or NIF_MESSAGE
    IconeTray.ucallbackMessage = WM_LBUTTONDOWN
    IconeTray.szTip = "Essai NotifyIcon" & Chr(0)
    Shell_NotifyIcon NIM_ADD, IconeTray

   '- - - valeur implicite
    Call Interval_Timer

End Sub

Private Sub Interval_Timer()

  Dim wbemObjectSet As Object
  Dim wbemObject As Object
  
   '- - - calcul Temperature
    Interval.Enabled = False
    Set wbemObjectSet = wbemServices.InstancesOf("MSAcpi_ThermalZoneTemperature")
     For Each wbemObject In wbemObjectSet
       Me.Caption = CInt(((wbemObject.CurrentTemperature - 2732) / 10)) & Chr(176) & "C"
      'Me.caption = CInt(((wbemObject.CurrentTemperature - 2732) / 10) * (9 / 5) + 32) & Chr(176) & "F"
       Me.Label1 = wbemObject.CurrentTemperature
     Next
    Set wbemObjectSet = Nothing
    Interval.Enabled = True
  
   '- - - calcul nouvelle images
    imgList.ListImages.Remove 1
     Pictext.Cls
     Pictext.Print Val(Me.Caption)
     Pictext.Line (2, 3)-(2, 11), , B
     Pictext.Circle (2, 13), 2
    imgList.ListImages.Add , , Pictext.Image
    
   '- - - Mise a jour SysTray
    IconeTray.hIcon = imgList.ListImages(1).ExtractIcon
    IconeTray.uFlags = NIF_ICON
    Shell_NotifyIcon NIM_MODIFY, IconeTray

End Sub

'=====================================================================================================
'  Fin Programme
'=====================================================================================================

Private Sub Form_Unload(Cancel As Integer)
   Set wbemServices = Nothing
   Shell_NotifyIcon NIM_DELETE, IconeTray
   Set Form1 = Nothing
End Sub

signaler à un administrateur
Commentaire de yomm le 13/07/2006 22:41:19

>>FDIEDLER2000

je sais pas ce que tu entends par mettre "un texte dans l'icon du systray" mais si c'est modifier le tooltiptext à savoir le texte afficher lorsque l'on pointe la souris sur l'icon en question, il te suffit d'utiliser une commande du style :
YommSysTray1.Caption = "toto"

comme dans l'exemple fournit dans le source...

@+ et bon dev

signaler à un administrateur
Commentaire de fdiedler2000 le 13/07/2006 23:07:45

lol non ca c facile mais c'est de mettre un texte dynamiquement dans le systray dans l'icone pas en ttoltip

signaler à un administrateur
Commentaire de yomm le 14/07/2006 15:33:04

>>FDIEDLER2000

en gros comme l'affichage de l'heure ?
désolé, je me suis jamais posé la question...

signaler à un administrateur
Commentaire de fdiedler2000 le 14/07/2006 19:00:32

oui exact mais dynamiquement car le chiffre va changer ^^

signaler à un administrateur
Commentaire de patrick le 17/07/2006 16:17:38

C'est ce que fait le bout de code que j'ai mis : il calcul la température CPU via "ACPI", puis "l'écrit" dans un icon. L'icon est alors "envoyé" au Systray.

Bon... la limite d'un texte dans un icon, c'est deux caractères maxi ! (16x16)

A+ Patrick

signaler à un administrateur
Commentaire de quigon23 le 24/07/2006 19:54:13

Simple Efficace Bravo !!!!

signaler à un administrateur
Commentaire de gilgamesh44 le 24/10/2006 10:56:52

Salut,

Tout d'abord merci pour cette source a double utilisation !

En effet, la gestion du systray est NICKEL !!! Ca marche du tonnerre !!! Et pour la deuxieme fonctionnalité, cette source va me permettre de deblayer un peu comment creer des controles activeX. En fait, c'est une super source en tant que TUTORIEL aux activeX !

Un gros merci !

signaler à un administrateur
Commentaire de mortalino le 18/12/2006 00:49:25

Salut,

très intéressant, cependant, malgrè mes recherches dans ton UC, comment fais-tu pour définir ton MenuPop ?
Par exemple, j'ai MenuQuitter, MenuRestore et MenuMessage, j'aimerai le changer et mettre d'autre chose.
J'ai beau regarder dans l'explorateur d'objet, je ne le retrouve pas.

Merci pour ton aide  ;)
++

signaler à un administrateur
Commentaire de mortalino le 18/12/2006 01:03:13

Humm j'ai mal cherché, autant pour moi !

Fallait passer par le créateur de Menu...
En tout cas merci beaucoup, je pense l'intégrer dans ma prochaine source (pour le taf) et je modifierai ton UserControl mais je ferai un clin d'oeil à ta source dans la mienne  ;)

@++
(9/10)

signaler à un administrateur
Commentaire de 42wawa42 le 06/05/2007 18:48:33

Trés belle source merci.....

A plus sur VBFrance.com
42wawa42
(9/10)

signaler à un administrateur
Commentaire de jblary le 20/06/2007 17:00:51

Salut,
Très bonne source, yomm! Ca fait plaisir de voir du code aussi propre (commentaire, identation...)
Je mets aussi un 9/10
Bonne continuation
A+
Jeh

signaler à un administrateur
Commentaire de benduf le 09/04/2008 13:19:36 9/10

Salut c'est génial j'arrive en m'en servir à partir d'un autre programme de développement hipper bridé!!!! Visual lansa par contre je n'arrive pas à charger un icône pourrait-on en mettre un par défault cela serait vraiment géniale pour moi. car l'icone est tout blanc. j'ai essayé aussi de l'ouvrir avec microsft visual studio 2005 mais j'ai des erreurs et je suis novice avec.

Merci

signaler à un administrateur
Commentaire de benduf le 05/06/2008 17:48:01

salut
ça fonctionne très bien sur XP, mais je dois le faire fonctionner sur serveur 2003, quelqu'un peut me dire comment faire, dois-je rajouter des dlls ou autre ....
Merci

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

aide pour systray [ par manitou ] Salut, j'ai développé une appli. qui me permet d'afficher une icône dans systray et qui fait sortir un menu déroulant sur un clic droit de la sourie.M demande d'aide pour systray [ par manitou ] Salut, j'ai développé une appli. qui me permet d'afficher une icône dans systray et qui fait sortir un menu déroulant sur un clic droit de la sourie.M Pb d'un débutant dans un systray !!!!!! [ par Raf ] Bonjour,lors du démarrage de mon programme j'utilise une icone que j'affiche grâce à un systray dans la barre de tache de windows.Cela fonctionne trés Pb dans un systray , à l'aide !!!!!! [ par Raf ] Bonjour,ma question est simple et courte à savoir :Comment faire clignoter un icone dans un systray qui apparait dans la barre de tâches Windows.Merci Comment fais-t-on pour qu'une application se mette dans le systray ? [ par Xav ] merciXavier Faire un menu avec le systray [ par TEtnobic ] J'aurai voulu savoir comment on fait pour faire apparaitre un menu lorsque l'on clique sur l'icone du systray.Je possede l'extension systray.ocx qui m Comment savoir où est le SysTray (bas, haut, gauche droite) [ par jack ] Salut à tou(te)s.En utilisant la propriété Screen.Heigth, on obtient la hauteur d'affichage de l'écran. Mais la barre de tache prend un espace. Or cet


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,671 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.