Comment fais-t-on pour qu'une application se mette dans le systray ?

Xav - 25 juil. 2001 à 11:52
kronemburg Messages postés 15 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 3 décembre 2005 - 19 août 2005 à 07:21
merci

Xavier

13 réponses

-------------------------------
Réponse au message :
-------------------------------

merci

Xavier
-------------------------------

Aaaah, mais dis donc tu lis pô les codes sources de ce site??? lol :-p

Allez goooo, j'vais t'expliker en moins de 2

Il faut d'abord ke tu aies le composant Systray.ocx

ensuite, tu dois voir dans Propriétés>Icon, met l'icône que tu veux...

ensuite, tu crées 1 bouton de réduction (commandbutton), code:
Private Sub cmdRéduire_Click()
Me.WindowState = 1
Me.Visible = False
csTray1.Visible = True
End Sub

ensuite,

Private Sub csTray1_MouseUp(Button As Integer)
csTray1.Visible = False
Me.WindowState = 0
Me.Visible = True
End Sub

En principe ta form doit avoir 1 borderStyle à 0-None, donc à toi de créer la barre-titre à ton goût...

Si cela peut t'aider... :big)

Si jamais qqu'1 d'autre a 1 meilleur soluce ke la mienne n'hésite pô à le suivre, car je suis sûr k'il peut y avoir mieux ke la mienne!!!! ;)

Allez bonne prog'!!!!

Gogogogogogogogoooooooooo
0
Moi j'ai une question subsidiaire à savoir :

Comment faire clignoter un icone dans un systray ???

A tu quelque chose à me proposer ?,

Merci d'avance pour ton aide.
0
Errrrrgl big colle ke tu me poses là!!! %-6

J'ai essayé d'appliquer le même principe en mettant cstray1 à la place de image1; résultat: ça clignote bien, mais cé pas vraiment ça! En fait, il apparaît & disparaît donc, la fenêtre du cstray n'arrête pas de redimmensionner à chaque fois, donc hyper ch.... surtout lorsk'on veut cliquer sur l'icône pr faire apparaître le prog'!!! %-6

Essaie, tu verras!... %-6
Si qqu'1 d'autre a 1 idée, n'hésitez pô à ns l'faire savoir!

Allez bone prog'!!!!!

Gogogogogooooooo
0
Effectivement, c'est la seule solution pour l'instant que j'ai.

Elle est pas vraiement cool.

A mon avis c'est possible, il faut juste trouver le code qui le fais.

Je pense que d'autres personnes se sont penchées sur le probléme et l'on résolu, le tout c'est de trouver comment .....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Aaah tu l'as vu, hein?... Pô rigolo du tout! %-6

Enfin, oui, t'as raiso, il fô juste trouver le bon code, mais bon reste à savoir le quel!!!! :-p

Allez Bone prog'!!!!!!

Gogogogogogogogoooooooooo
0
Tu te fais un module :
-------------------------------
Option Explicit

Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
'Get Computer Name
Declare Function GetComputerName Lib "kernel32" Alias _
"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Public Const FLAGS = 1
Public Const HWND_TOPMOST = -1

Public Const WM_LBUTTONDBLCLICK = &H203
Public Const WM_RBUTTONUP = &H205
Public Const WM_MOUSEMOVE = &H200
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4

Public 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

Public VBGTray As NOTIFYICONDATA
----------------------------------

Dans la partie de la form tu entre :
---------------------------
Private Const ERROR_SUCCESS = 0&
Private Const APINULL = 0&
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private ReturnCode As Long

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
--------------------------------
Puis tu modifie ce code pour toi ( form_load ):
------------------------------------

VBGTray.cbSize = Len(VBGTray)
VBGTray.hwnd = Me.hwnd
VBGTray.uId = vbNull
VBGTray.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
VBGTray.ucallbackMessage = WM_MOUSEMOVE

VBGTray.hIcon = Me.Icon
VBGTray.szTip = Me.Caption
-------------------------------
Et le bouton de réduction :
---------------------------
Call Shell_NotifyIcon(NIM_ADD, VBGTray)
App.TaskVisible = False 'remove application from taskbar
Me.Hide
--------------------------
0
Oooooooooh p'taing la vache, trop cool!!!!

Merci & désolé pr le gros mot!... ;)

J'avais même pô vu le msg alors, qd j'me suis baladé, jé aperçu ke j'avais 1 réponse!..

Hé bin, va falloir faire 1 coppie-colle, & vais tester à l'instant!!!!!! :-p

Gooooooooooo

Merci bcp!!!!!!

Allez bone prog'!!!!!

Gogogogogogogogogooooooooooooo
0
-------------------------------
Réponse au message :
-------------------------------

Tu te fais un module :
-------------------------------
Option Explicit

Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
'Get Computer Name
Declare Function GetComputerName Lib "kernel32" Alias _
"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Public Const FLAGS = 1
Public Const HWND_TOPMOST = -1

Public Const WM_LBUTTONDBLCLICK = &H203
Public Const WM_RBUTTONUP = &H205
Public Const WM_MOUSEMOVE = &H200
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4

Public 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

Public VBGTray As NOTIFYICONDATA
----------------------------------

Dans la partie de la form tu entre :
---------------------------
Private Const ERROR_SUCCESS = 0&
Private Const APINULL = 0&
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private ReturnCode As Long

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
--------------------------------
Puis tu modifie ce code pour toi ( form_load ):
------------------------------------

VBGTray.cbSize = Len(VBGTray)
VBGTray.hwnd = Me.hwnd
VBGTray.uId = vbNull
VBGTray.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
VBGTray.ucallbackMessage = WM_MOUSEMOVE

VBGTray.hIcon = Me.Icon
VBGTray.szTip = Me.Caption
-------------------------------
Et le bouton de réduction :
---------------------------
Call Shell_NotifyIcon(NIM_ADD, VBGTray)
App.TaskVisible = False 'remove application from taskbar
Me.Hide
--------------------------

Euh, sans vouloir jouer aux rabats-joie... Mais, si l'application s'est bien mis ds le systray

comment le faire réapparaitre en cliquant dessus?? car j'ai essayé de cliquer dessus, il répond pô!!??? %-6

Tt essayé, double click, click, tt!... :sad)
0
sniffffffffff moi ca mrch po!!!!!
jai deja esayer 5 code diferent ca march jamais :-(
alors svouplai HELPP
pis quand tu dit (on fout ca ou???????????)

Etle bouton de reduction
Call Shell_NotifyIcon(NIM_ADD, VBGTray)
App.TaskVisible = False 'remove application from taskbar
Me.Hide
0
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
24 déc. 2003 à 04:12
pour moi ca marche bien du premier coup puisque g l icone a coté de l heure mais g toujours mon prog ds la barre des tache meme quand je le reduit et sinon ou c que on modifie le code pour ajouté un menu a l icone
thx
:big)
0
Quikyzat2002 Messages postés 9 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 24 septembre 2004
14 janv. 2004 à 18:50
quikyzat2002

Salut on le trouve ou le composant Systray.ocx ???
merci d avance
0
kronemburg Messages postés 15 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 3 décembre 2005
13 août 2005 à 02:20
Salut,
Tu peu le trouver dans cette source :
http://www.vbfrance.com/code.aspx?ID=27226
0
kronemburg Messages postés 15 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 3 décembre 2005
19 août 2005 à 07:21
J'ai trouvé une excellente source à ce sujet :
http://www.vbexplorer.com/VBExplorer/viewcode.asp?SendText=files/systray
Bien commentée (en anglais), et simple.
0
Rejoignez-nous