|
Trouver une ressource
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 !
METTRE UNE ICÔNES DANS LA BARRE DE TACHES
Information sur la source
Description
Prenez un module, une form avec un bouton et mettez une icone a votre form.
Source
- A mettre dans un module :
-
- 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 Const NIM_ADD = 0
- Public Const NIM_MODIFY = 1
- Public Const NIM_DELETE = 2
- Public Const NIF_MESSAGE = 1
- Public Const NIF_ICON = 2
- Public Const NIF_TIP = 4
- '
- Public Const GWL_WNDPROC = -4
- '
- Public Const WM_LBUTTONDOWN = &H201
- Public Const WM_RBUTTONDOWN = &H204
- Public Const WM_LBUTTONDBLCLK = &H203
- Public Const TPM_RIGHTALIGN = &H8&
- '
- Public lpPrevWndProc As Long
- Public ghWnd As Long
- '
- Declare Function Shell_NotifyIconA Lib _
- "shell32" (ByVal dwMessage As Long, _
- lpData As NOTIFYICONDATA) As Integer
-
- '
- '*** Fonctions Windows ***
- '
- Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
- Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
- Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
- Declare Function SetMenuDefaultItem Lib "user32" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPos As Long) As Long
- Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, lprc As Any) As Long
-
-
- '*************************
-
-
- Public Sub IconToTray(frx As Form, msgTip$, Flag As Boolean)
- Dim nd As NOTIFYICONDATA
- Dim dMSG As Long
- Dim RetVal As Integer
- '
- With nd
- .szTip = msgTip$ & Chr$(0)
- .cbSize = Len(nd)
- .hwnd = frx.hwnd
- .uID = 1
- .uCallbackMessage = WM_LBUTTONDOWN
- .hIcon = frx.Icon
- .uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
- End With
- '
- If Flag Then dMSG = NIM_ADD Else dMSG = NIM_DELETE
- RetVal = Shell_NotifyIconA(dMSG, nd)
-
- End Sub
- Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- If hw = Form1.hwnd Then
- If lParam = WM_LBUTTONDBLCLK Then
- Form1.Show vbModeless
- ElseIf lParam = WM_RBUTTONDOWN Then
- MontrerMenu
- Else
- WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
- End If
- Else
- WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
- End If
-
- End Function
-
- Public Sub HookWindow()
- lpPrevWndProc = SetWindowLong(ghWnd, GWL_WNDPROC, AddressOf WindowProc)
- End Sub
-
- Public Sub Unhookwindow()
- Dim RetVal As Long
- '
- RetVal = SetWindowLong(ghWnd, GWL_WNDPROC, lpPrevWndProc)
-
- End Sub
-
- Public Sub MontrerMenu()
- Dim hMenu As Long
- Dim hSousMenu As Long
- Dim RetVal As Long
-
- '
- hMenu = GetMenu(frmMenu.hwnd)
- hSousMenu = GetSubMenu(hMenu, 0)
- '
- SetMenuDefaultItem hSousMenu, 0, True
- With Screen
- w& = (.Width \ .TwipsPerPixelX) * 0.8
- h& = (.Height \ .TwipsPerPixelY)
- End With
-
- RetVal = TrackPopupMenu(hSousMenu, TPM_RIGHTALIGN, w&, h&, 0&, frmMenu.hwnd, ByVal 0&)
- End Sub
-
-
-
-
- A mettre dans votre form :
-
- Option Explicit
-
- Private Sub Command1_Click()
- Unload Me
- End Sub
-
- Private Sub Form_Load()
- ghWnd = Me.hwnd
- HookWindow
- IconToTray Me, "CECI est un Test", True
- Me.Hide
- End Sub
-
- Private Sub Form_Unload(Cancel As Integer)
- IconToTray Me, "", False
- Unhookwindow
- End Sub
A mettre dans un module :
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 Const NIM_ADD = 0
Public Const NIM_MODIFY = 1
Public Const NIM_DELETE = 2
Public Const NIF_MESSAGE = 1
Public Const NIF_ICON = 2
Public Const NIF_TIP = 4
'
Public Const GWL_WNDPROC = -4
'
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_LBUTTONDBLCLK = &H203
Public Const TPM_RIGHTALIGN = &H8&
'
Public lpPrevWndProc As Long
Public ghWnd As Long
'
Declare Function Shell_NotifyIconA Lib _
"shell32" (ByVal dwMessage As Long, _
lpData As NOTIFYICONDATA) As Integer
'
'*** Fonctions Windows ***
'
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Declare Function SetMenuDefaultItem Lib "user32" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPos As Long) As Long
Declare Function TrackPopupMenu Lib "user32" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, lprc As Any) As Long
'*************************
Public Sub IconToTray(frx As Form, msgTip$, Flag As Boolean)
Dim nd As NOTIFYICONDATA
Dim dMSG As Long
Dim RetVal As Integer
'
With nd
.szTip = msgTip$ & Chr$(0)
.cbSize = Len(nd)
.hwnd = frx.hwnd
.uID = 1
.uCallbackMessage = WM_LBUTTONDOWN
.hIcon = frx.Icon
.uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
End With
'
If Flag Then dMSG = NIM_ADD Else dMSG = NIM_DELETE
RetVal = Shell_NotifyIconA(dMSG, nd)
End Sub
Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If hw = Form1.hwnd Then
If lParam = WM_LBUTTONDBLCLK Then
Form1.Show vbModeless
ElseIf lParam = WM_RBUTTONDOWN Then
MontrerMenu
Else
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End If
Else
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End If
End Function
Public Sub HookWindow()
lpPrevWndProc = SetWindowLong(ghWnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub Unhookwindow()
Dim RetVal As Long
'
RetVal = SetWindowLong(ghWnd, GWL_WNDPROC, lpPrevWndProc)
End Sub
Public Sub MontrerMenu()
Dim hMenu As Long
Dim hSousMenu As Long
Dim RetVal As Long
'
hMenu = GetMenu(frmMenu.hwnd)
hSousMenu = GetSubMenu(hMenu, 0)
'
SetMenuDefaultItem hSousMenu, 0, True
With Screen
w& = (.Width \ .TwipsPerPixelX) * 0.8
h& = (.Height \ .TwipsPerPixelY)
End With
RetVal = TrackPopupMenu(hSousMenu, TPM_RIGHTALIGN, w&, h&, 0&, frmMenu.hwnd, ByVal 0&)
End Sub
A mettre dans votre form :
Option Explicit
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Form_Load()
ghWnd = Me.hwnd
HookWindow
IconToTray Me, "CECI est un Test", True
Me.Hide
End Sub
Private Sub Form_Unload(Cancel As Integer)
IconToTray Me, "", False
Unhookwindow
End Sub
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Recuperer les icone du systray pour creation dune barre des taches [ par lamouchexp ]
VoilaJ'aimerais creer ma propre barre des taches sur windows xp.J'aimerais savoir comment recuperer toutes les icones du systray avec leur menu contex
MASQUER ICONE BARRE DE TACHE [ par bouv ]
Bonjour,J'aimerai savoir s'il est possible de cacher l'icone d'un programme qui se trouve dans la barre de tache.Exemple : Un logiciel se lance au dem
Icone dans la barre des tache [ par Le newbie ]
Salut à tous,je voudrais savoir comment au lancement de mon programme la fenêtre ne soit qu'une icône dans la barre des tâches de Windows afin que mon
reduire une icone dans la barre de teches system [ par nourwahiba ]
j'ai mon application vb qui accede a une base de donnée sql server...j'ai fais un installable avec inno setup et istool ..et tout va bien le probleme
accéder aux informations des icones de la barre de tache [ par cepacepa ]
bonjour, je sais comment creer des icones applicatifs dans la barre de tache mais est-il possible d'accéder à un icone d'une autre application pour no
barre des tache [ par louloux_rsi ]
Bonsoir,Comment fait on pour enlever l'application present dans la barre des taches et pour la placer dans le systray??? Merci
InfoBulle sur une icone du Systray [ par Luc1ano0o ]
Bonjour à tous, j'aimerais savoir comment on crée une infobulle sur une icone du systray. Le tooltip n'est pas la solution que je recherch
Faire disparaitre une fenetre sans la fermer [ par syxe_mpl ]
Bonjour,Je souhaiterai faire disparaitre ma form principal de la barre de tache et qu elle soit toujours active !! pour la faire réaparaitre en double
Creer un service qui apparait dans la barre de tache [ par jcvid2 ]
Salut,J'aimerais creer en VB.Net (Version 2003) un service qui apparaisse en barre de tâche (vous savez a droite la ou apparait la connection réseau.J
Icone barre des tâches [ par dixcie ]
Bonjour,lorsque je lance mon application contenant une 'notify icon', il n'y a pas de problème: l'icône s'affiche bien dans la barre des tâches.Par co
|
Téléchargements
Logiciels à télécharger sur le même thème :
|