OCX POUR GÉRER LE SYSTRAY SUPER FACILEMENT !!! SI, SI JETEZ UN OEIL VOUS VERREZ
Golog
Messages postés224Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention22 décembre 2009
-
14 févr. 2004 à 13:10
cs_benduf
Messages postés4Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 5 juin 2008
-
5 juin 2008 à 17:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_benduf
Messages postés4Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 5 juin 2008 5 juin 2008 à 17:48
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
cs_benduf
Messages postés4Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 5 juin 2008 9 avril 2008 à 13:19
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
jblary
Messages postés1Date d'inscriptionjeudi 11 mai 2006StatutMembreDernière intervention20 juin 2007 20 juin 2007 à 17:00
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
42wawa42
Messages postés143Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention 6 septembre 2011 6 mai 2007 à 18:48
Trés belle source merci.....
A plus sur VBFrance.com
42wawa42
(9/10)
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 18 déc. 2006 à 01:03
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)
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 18 déc. 2006 à 00:49
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 ;)
++
cs_gilgamesh44
Messages postés12Date d'inscriptionlundi 22 novembre 2004StatutMembreDernière intervention31 mars 2009 24 oct. 2006 à 10:56
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 !
quigon23
Messages postés1Date d'inscriptionlundi 24 juillet 2006StatutMembreDernière intervention24 juillet 2006 24 juil. 2006 à 19:54
Simple Efficace Bravo !!!!
cs_patrick
Messages postés31Date d'inscriptionvendredi 19 mai 2000StatutMembreDernière intervention21 juillet 2015 17 juil. 2006 à 16:17
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
fdiedler2000
Messages postés383Date d'inscriptionsamedi 29 janvier 2005StatutMembreDernière intervention 1 décembre 2008 14 juil. 2006 à 19:00
oui exact mais dynamiquement car le chiffre va changer ^^
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 14 juil. 2006 à 15:33
>>FDIEDLER2000
en gros comme l'affichage de l'heure ?
désolé, je me suis jamais posé la question...
fdiedler2000
Messages postés383Date d'inscriptionsamedi 29 janvier 2005StatutMembreDernière intervention 1 décembre 2008 13 juil. 2006 à 23:07
lol non ca c facile mais c'est de mettre un texte dynamiquement dans le systray dans l'icone pas en ttoltip
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 13 juil. 2006 à 22:41
>>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
cs_patrick
Messages postés31Date d'inscriptionvendredi 19 mai 2000StatutMembreDernière intervention21 juillet 2015 12 juil. 2006 à 23:25
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
'- - - 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
fdiedler2000
Messages postés383Date d'inscriptionsamedi 29 janvier 2005StatutMembreDernière intervention 1 décembre 2008 7 juil. 2006 à 19:41
c'est possible de mettre un texte dans l'icon du systray ??
_deadstar_
Messages postés40Date d'inscriptiondimanche 30 janvier 2005StatutMembreDernière intervention17 août 2007 9 mars 2006 à 10:43
super merci beaucoup pour ton aide ! ^^
cs_patrick
Messages postés31Date d'inscriptionvendredi 19 mai 2000StatutMembreDernière intervention21 juillet 2015 1 mars 2006 à 09:19
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
fredericmichel
Messages postés7Date d'inscriptionvendredi 4 février 2005StatutMembreDernière intervention11 avril 2008 3 août 2005 à 11:18
Très bien, merci à toi.
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 30 janv. 2005 à 00:45
Commentaire tardif...
Vraiment très bien...
10/10
Heureusement qu'il y a Yomm :-)
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 13 août 2004 à 20:04
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.
@+
cs_shakaka
Messages postés8Date d'inscriptionlundi 9 août 2004StatutMembreDernière intervention10 janvier 2008 13 août 2004 à 16: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
Aramiil
Messages postés48Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention21 avril 2008 6 juin 2004 à 22:41
félicitation, j'aime beaucoup!
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 30 mai 2004 à 12:32
merci a bous
cs_wolfcyber
Messages postés78Date d'inscriptiondimanche 22 février 2004StatutMembreDernière intervention24 juillet 2005 29 mai 2004 à 15:18
Tres bien, vraiment, 8/10
tmcuh
Messages postés458Date d'inscriptiondimanche 22 décembre 2002StatutMembreDernière intervention18 avril 2009 17 mai 2004 à 12:53
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
mythic_kruger
Messages postés241Date d'inscriptionjeudi 8 janvier 2004StatutMembreDernière intervention10 novembre 2005 3 mars 2004 à 02:21
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!
NeoToto
Messages postés11Date d'inscriptionvendredi 29 novembre 2002StatutMembreDernière intervention15 mai 2006 23 févr. 2004 à 15:35
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 :)
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 15 févr. 2004 à 00:46
merci a toi ;-)
kimmelf2
Messages postés267Date d'inscriptionlundi 22 septembre 2003StatutMembreDernière intervention27 novembre 2005 14 févr. 2004 à 23:35
moi j'aime bien alors je met 9 vu que ca va m'aider :-)
yomm
Messages postés515Date d'inscriptiondimanche 17 février 2002StatutMembreDernière intervention10 mars 20083 14 févr. 2004 à 14:52
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 ....
Golog
Messages postés224Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention22 décembre 2009 14 févr. 2004 à 13:10
Avait déja vu sur le site, c po innovant ... mais bon c bien de le rappeler
5 juin 2008 à 17:48
ç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
9 avril 2008 à 13:19
Merci
20 juin 2007 à 17:00
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
6 mai 2007 à 18:48
A plus sur VBFrance.com
42wawa42
(9/10)
18 déc. 2006 à 01:03
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)
18 déc. 2006 à 00:49
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 ;)
++
24 oct. 2006 à 10:56
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 !
24 juil. 2006 à 19:54
17 juil. 2006 à 16:17
Bon... la limite d'un texte dans un icon, c'est deux caractères maxi ! (16x16)
A+ Patrick
14 juil. 2006 à 19:00
14 juil. 2006 à 15:33
en gros comme l'affichage de l'heure ?
désolé, je me suis jamais posé la question...
13 juil. 2006 à 23:07
13 juil. 2006 à 22:41
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
12 juil. 2006 à 23:25
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
7 juil. 2006 à 19:41
9 mars 2006 à 10:43
1 mars 2006 à 09:19
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
3 août 2005 à 11:18
30 janv. 2005 à 00:45
Vraiment très bien...
10/10
Heureusement qu'il y a Yomm :-)
13 août 2004 à 20:04
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.
@+
13 août 2004 à 16:02
Merci pour ton aide
6 juin 2004 à 22:41
30 mai 2004 à 12:32
29 mai 2004 à 15:18
17 mai 2004 à 12:53
Bonne continuation
3 mars 2004 à 02:21
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!
23 févr. 2004 à 15:35
(De toute facon, si ca marche pas, je reviens et je met 0 :)
15 févr. 2004 à 00:46
14 févr. 2004 à 23:35
14 févr. 2004 à 14:52
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 ....
14 févr. 2004 à 13:10