Page 4 of 4
Re: How to remove systray icon?
Posted: Fri Feb 19, 2010 11:53 am
by infratec
Hi,
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()
Please test it.
Bernd
Re: How to remove systray icon?
Posted: Fri Feb 19, 2010 11:57 am
by srod
Yep that works here.
Nice solution.
Re: How to remove systray icon?
Posted: Fri Feb 19, 2010 12:02 pm
by whertz
Thanks infratec, another good solution.
Re: How to remove systray icon?
Posted: Fri Feb 19, 2010 12:16 pm
by infratec
Hi,
it is not neccessary to send a MouseMove to each line,
so I reduced it to the middle line.
I also 'move' now only every 4th pixel.
Since I still hit every icon, it works.
Bernd
Re: How to remove systray icon?
Posted: Fri Feb 19, 2010 12:19 pm
by Michael Vogel
RASHAD wrote:Hi Michael
Nice talking to you
Give me some details, like What do you want to do?(may be I can help)
I think XP is in your mind not Win 7, right?
Right !
Re: How to remove systray icon?
Posted: Fri Feb 19, 2010 12:21 pm
by infratec
Hi Michael,
my solution 'refreshes' the systray complete.
Like you move the mouse above it
Bernd
Re: How to remove systray icon?
Posted: Fri Feb 19, 2010 12:31 pm
by RASHAD
Hi Berned
Sorry it does not work here not with XP nor with Windows 7
It seems to me it will work with some special cases
I created a prog. it is only a process no windows it create a system tray icon and using Esc key to quit
When I kill the process the icon stayes in the system tray and no way up to now to clean it specially with 7
It is a kind of a f**** task somehow
Hi Micharl
Ok I will try (may be .... who knows)
Re: How to remove systray icon?
Posted: Fri Feb 19, 2010 12:38 pm
by infratec
Hi Rashad,
I use XP 32 bit and the 'notepad' example.
It works without any problems.
The only thing what it does, is to simulate a mousemove across the whole stuff.
So if your icon removes when you use your real mouse, it should also remove with my program.
Please try the latest version.
Bernd
Re: How to remove systray icon?
Posted: Fri Feb 19, 2010 12:48 pm
by RASHAD
Hi Berned
I know that you are testing some special case
Keep tring will you?
whertz just opened the hell
Michael
BTW:Your marvel code for ejecting the USB flash works for me in XP only
But nobody complain about that so I kept quiet check that please.
Re: How to remove systray icon?
Posted: Sat Feb 20, 2010 3:08 pm
by Michael Vogel
Wrote some words like "Thanks Bernd and Rashad" but it seems that I forgot to click on "send"
Your code snippets work fine here, I'm sure, one of my next programs will use some lines of them
Michael
RASHAD wrote:Michael
BTW:Your marvel code for ejecting the USB flash works for me in XP only
But nobody complain about that so I kept quiet check that please.
Hm - I'm using the eject routines in a small tool called "Runner", which is something like a swiss knife on my USB stick. I also have included the routine to eject USB devices, which worked fine on all PCs for now (2000, XP, Vista and 7) -- the only difference is, that the LED doesn't get off on Vista
The only thing in the eject procedure lines I had to change for Vista was the following (I fear, that has nothing to do with your problems)
Global LocalDrive;=FirstChar(PeekS(GetCommandLine_()))
GetModuleFileName_(0,@LocalDrive,2); <--- 1 works for XP but not for Vista !
LocalDrive&$df;
Re: How to remove systray icon?
Posted: Sat Feb 20, 2010 3:36 pm
by RASHAD
OK Michael
I will give the code another look
Now see next if it will suit you
Sorry if we are hijacking this thread
Code: Select all
h1 = FindWindow_("Shell_TrayWnd",0)
h2 = FindWindowEx_(h1,0,"TrayNotifyWnd",0)
h3 = FindWindowEx_(h2,0,"SysPager",0)
h4 = FindWindowEx_(h3,0,"ToolbarWindow32",0)
h5 = FindWindowEx_(h2,0,"TrayClockWClass",0)
;********************************( Show Desktop Windows 7 )************************
;h6 = FindWindowEx_(h2,0,"TrayShowDesktopButtonWClass",0)
;******************( Maximize Clock )**************************
ShowWindow_(h3,#SW_HIDE)
ShowWindow_(h5,#SW_MAXIMIZE)
SHChangeNotify_(134217728,0,0, 0)
;******************( Restore Previous )**************************
; ShowWindow_(h5,#SW_RESTORE )
; ShowWindow_(h3,#SW_SHOW)
; SHChangeNotify_(134217728,0,0, 0)