Lorsque qu'une application installe une icône dans le SysTray, cette icône disparait si l’Explorateur Windows (explorer.exe) vient a se cracher ou que par nécessité on redémarre l’Explorateur Windows.
Si l'application n'a d'icône ni dans la barre de tache ni dans le SysTray, il n'est plus possible de contrôler cette application.
Pour résoudre le problème, l'icône est ajoutée dans le SysTray toutes les N secondes via un Timer
L'icône étant déjà présente dans le SysTray, cela ne devrait avoir aucune incidence.
Mais tout se passe comme si l'icône était d'abord retirée puis ensuite ajoutée dans le SysTray ce qui a pour effet de faire sauter l'icône et de faire trembloter le groupe d'icône situé a gauche de celle-ci.
Auriez-vous une idée pour empêcher ce tremblement sachant que j'ai souvent plusieurs utilitaires PB ouverts en même temps et que j'aime avoir les icônes visibles dans le SysTray (mes utilitaires une fois réduits ne sont plus présents dans la barre de tache pour gagner de la place.)
Augmenter le Timer n'est pas vraiment une solution.
Voici une partie du code que j'utilise
Code : Tout sélectionner
EnableExplicit
#WinApp=0
DataSection ; Images
Image_App:
IncludeBinary "MyApp.ico"
EndDataSection
Enumeration Images
#Image_App
EndEnumeration
Global IconApp = CatchImage(#Image_App , ?Image_App)
Enumeration Timers
#Timer
EndEnumeration
Procedure initSysTray()
AddSysTrayIcon(#WinApp, WindowID(#WinApp), IconApp)
SysTrayIconToolTip(#WinApp, "MyApp")
EndProcedure
ExamineDesktops()
#W=300 : #H=200
Define X = (DesktopWidth(0) -#W)/2
Define Y = (DesktopHeight(0)-#H)/2
Define Event
If OpenWindow(0, X, Y, #W, #H, "AddSysTrayIcon", #PB_Window_MinimizeGadget|#PB_Window_Minimize|#PB_Window_WindowCentered)
initSysTray()
SetWindowState(0, #PB_Window_Normal)
AddWindowTimer(#WinApp, #Timer, 3000)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow : End
Case #PB_Event_Timer : initSysTray()
EndSelect
ForEver
EndIf
Je vous souhaite mes meilleurs vœux pour cette nouvelle année qui commence et que Fred nous concocte un PB encore meilleur dans les mois a venir.
Gérard