Comment faire pour utiliser des icônes de la zone de notification de la barre des tâches dans Windows 95/98/Me

Ancien nº de publication de cet article : F149276
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Résumé
L'API Windows offre la possibilité d'ajouter, de modifier et de supprimer des icônes de la barre d'état système, ou zone de notification de la barre des tâches, disponible dans l'environnement Windows 95, Windows 98, Windows Millenium Edition, Windows NT 4.0 et Windows 2000. Cette fonctionnalité peut être obtenue à l'aide uniquement de la fonction Shell_NotifyIcon exportée par Shell32.dll. Cette fonction API permet également de spécifier une chaîne de texte pour l'info-bulle affichée lorsqu'un utilisateur place le pointeur de sa souris sur une icône. L'exemple de procédure étape par étape présenté dans cet article crée un programme Visual Basic qui vous montre comment utiliser cette fonction API.

La capacité de lancer une action si l'utilisateur clique sur une icône de la barre d'état système dépend d'une fonction de rappel. Étant donné que Visual Basic 4.0 ne prend pas en charge directement les fonctions de rappel, vous ne pouvez pas afficher un formulaire ni exécuter un code en utilisant uniquement Visual Basic 4.0. Cette fonctionnalité a été ajoutée dans Visual Basic 5.0 (et version ultérieure) avec l'opérateur AddressOf. Les développeurs Visual Basic 4.0 disposent de plusieurs options pour utiliser la fonctionnalité de rappel, notamment le Message Blaster OCX, l'OCX mentionné dans l'article de Microsoft Systems Journal indiqué dans la section « Références » de cet article ou le serveur Callback OLE présenté en détail dans l'ouvrage de Bruce McKinney, Hardcore Visual Basic (en anglais). Pour plus d'informations sur ces options, reportez-vous à la section « Références ». Ces produits n'incluant pas Visual Basic, les services de Support technique Microsoft ne prennent pas en charge leur utilisation.
Plus d'informations
L'exemple suivant permet de créer un projet Visual Basic contenant un formulaire qui vous montre comment utiliser la fonction API Shell_NotifyIcon.

Exemple étape par étape

  1. Démarrez Visual Basic. Form1 est créé par défaut.
  2. Modifiez la propriété de l'icône du formulaire pour la remplacer par celle qui s'affichera dans la barre d'état système.
  3. Dessinez trois boutons de commande sur le formulaire.
  4. Sélectionnez Module dans le menu Insertion pour ajouter un module de code au projet.
  5. Ajoutez le code suivant, qui déclare une fonction, un type et des constantes, dans le module1 :
          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      Global Const NIM_ADD = 0      Global Const NIM_MODIFY = 1      Global Const NIM_DELETE = 2      Global Const NIF_MESSAGE = 1      Global Const NIF_ICON = 2      Global Const NIF_TIP = 4      Declare Function Shell_NotifyIconA Lib "SHELL32" _      (ByVal dwMessage As Long,  lpData As NOTIFYICONDATA) As Integer					
  6. Le code suivant est une fonction qui traite les paramètres devant être configurés pour le type NOTIFYICONDATA pour retourner une variable de ce type. Dans Form1, ajoutez le code suivant :
          Private Function setNOTIFYICONDATA(hWnd As Long, ID As Long, _          Flags As Long, CallbackMessage As Long, Icon As Long, _          Tip As String) As NOTIFYICONDATA          Dim nidTemp As NOTIFYICONDATA          nidTemp.cbSize = Len(nidTemp)          nidTemp.hWnd = hWnd          nidTemp.uID = ID          nidTemp.uFlags = Flags          nidTemp.uCallbackMessage = CallbackMessage          nidTemp.hIcon = Icon          nidTemp.szTip = Tip & Chr$(0)          setNOTIFYICONDATA = nidTemp      End Function					
  7. Les trois procédures comprises dans ce bloc de code appellent la fonction créée à l'étape 5 pour ajouter, modifier et supprimer des icônes de la barre d'état système. Ajoutez également le code suivant dans Form1 :
          Private Sub Command1_Click()          'Add an icon.  This procedure uses the icon specified in          'the Icon property of Form1. This can be modified as desired.          Dim i As Integer          Dim s As String          Dim nid As NOTIFYICONDATA          s = InputBox("Enter string:")          nid = setNOTIFYICONDATA(hWnd:=Form1.hWnd, _                                  ID:=vbNull, _                                  Flags:=NIF_MESSAGE Or NIF_ICON _                                  Or NIF_TIP, _                                  CallbackMessage:=vbNull, _                                  Icon:=Form1.Icon, _                                  Tip:=s)             i = Shell_NotifyIconA(NIM_ADD, nid)         End Sub         Private Sub Command2_Click()             'Modify an existing icon. This procedure uses the icon             'specified in the Icon property of Form1. This can be modified             'as desired.             Dim i As Integer             Dim s As String             Dim nid As NOTIFYICONDATA             s = InputBox("Enter string:")             nid = setNOTIFYICONDATA(hWnd:=Form1.hWnd, _                                     ID:=vbNull, _                                     Flags:=NIF_MESSAGE Or NIF_ICON _                                     Or NIF_TIP, _                                     CallbackMessage:=vbNull, _                                     Icon:=Form1.Icon, _                                     Tip:=s)             i = Shell_NotifyIconA(NIM_MODIFY, nid)         End Sub         Private Sub Command3_Click()             'Delete an existing icon.             Dim i As Integer             Dim nid As NOTIFYICONDATA          nid = setNOTIFYICONDATA(hWnd:=Form1.hWnd, _                                  ID:=vbNull, _                                  Flags:=NIF_MESSAGE Or NIF_ICON _                                  Or NIF_TIP, _                                  CallbackMessage:=vbNull, _                                  Icon:=Form1.Icon, _                                  Tip:="")          i = Shell_NotifyIconA(NIM_DELETE, nid)      End Sub					
  8. Appuyez sur la touche F5 ou sélectionnez Démarrer dans le menu Exécuter pour exécuter l'application. Cliquez sur le premier bouton et entrez une chaîne de texte pour ajouter une icône. Cliquez sur le deuxième bouton pour modifier une icône existante, et sur le troisième pour supprimer une icône.
Références
Hardcore Visual Basic, Bruce McKinney, Microsoft Press 1995.

Microsoft Win32 SDK, Shell_NotifyIcon et NOTIFYICONDATA.

Microsoft Systems Journal, février 1996, The Visual Programmer, page 93.

Journal du programmeur Visual Basic, mars 1996, Q&A, page 136.

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
162613 Comment faire pour manipuler des icônes dans la barre d'état système à l'aide de Visual Basic
system tray
Propriétés

ID d'article : 149276 - Dernière mise à jour : 02/22/2014 01:49:32 - Révision : 3.1

Microsoft Visual Basic 4.0 Édition Standard, Microsoft Visual Basic 4.0 Édition professionnelle, Microsoft Visual Basic 4.0 32-Bit Enterprise Edition, Microsoft Visual Basic 5.0 Édition initiation, Microsoft Visual Basic 6.0 Édition initiation, Microsoft Visual Basic 5.0 Édition professionnelle, Microsoft Visual Basic 6.0 Édition professionnelle, Microsoft Visual Basic 5.0 Édition Entreprise, Microsoft Visual Basic 6.0 Édition Entreprise

  • kbnosurvey kbarchive kbapi kbhowto KB149276
Commentaires
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)