here is my small try for a solution
Code: Select all
Procedure Refresh(hTray.l)
Result = #False
If hTray
rRect.RECT
;get the size of the window
If GetClientRect_(hTray, rRect)
;loop through each line
; For z.l = 0 To rRect\bottom
z = rRect\bottom / 2
; send a MouseMove to each position
For x = 0 To rRect\right Step 4
SendMessage_(hTray, #WM_MOUSEMOVE, 0, (z << 16) | x)
Next x
; Next z
Result = #True
EndIf
EndIf
ProcedureReturn Result
EndProcedure
Procedure.l FindSysTray()
hWnd.l = FindWindow_("Shell_TrayWnd", #Null)
If hWnd
hWnd = FindWindowEx_(hWnd, 0, "TrayNotifyWnd", #Null)
If hWnd
hWnd = FindWindowEx_(hWnd, 0, "SysPager", #Null)
If hWnd
hWnd = FindWindowEx_(hWnd, 0, "ToolbarWindow32", #Null)
EndIf
EndIf
EndIf
ProcedureReturn hWnd
EndProcedure
Procedure SysTrayRefresh()
Result = #False
;get handle of Systray
hSystray.l = FindSysTray()
;refresh Systray
If Refresh(hSystray) : Result = #True : EndIf
ProcedureReturn Result
EndProcedure
SysTrayRefresh()Bernd



