Accueil > > > METTRE UNE ICÔNES DANS LA BARRE DE TACHES
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
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
|
Derniers Blogs
[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Très bonne après-midi passée lors cette conférence avec le W3C, organisée par L' Inria sur les nouveaux standards, ce Mardi 14 Février, on sent vraiment que çà bosse au W3C, et l'avenir est très très prometteur pour le HTML5, notamment ...
Cliquez pour lire la suite de l'article par Gio GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|