Home All Groups Group Topic Archive Search About

Is it possible to remove 3rd party app icon from systray?

Author
15 Mar 2009 4:35 AM
Kathy
Hello,
           I am facing this problem.
My app starts the 3rd party app using runas,  starting several instances of
it.
Each instance at startup loads its own icon in the systray, which causes big
and unnecessary crowd.
I wonder, is it possible to start these instances without systray icon
loaded or to remove these icons afterwards?
Please advice,
Kathy

Author
15 Mar 2009 9:19 AM
John S
I think, this is possibe, but ar eyou sure that application will work
correctly ?
May be, it is more correct to duplicate functionality if this app ?


Show quoteHide quote
"Kathy" <Kathy@kathy> wrote in message
news:uaNFHeSpJHA.5880@TK2MSFTNGP05.phx.gbl...
> Hello,
>           I am facing this problem.
> My app starts the 3rd party app using runas,  starting several instances
> of it.
> Each instance at startup loads its own icon in the systray, which causes
> big and unnecessary crowd.
> I wonder, is it possible to start these instances without systray icon
> loaded or to remove these icons afterwards?
> Please advice,
> Kathy
>
Author
15 Mar 2009 10:52 AM
Larry Serflaten
"Kathy" <Kathy@kathy> wrote
>            I am facing this problem.
> My app starts the 3rd party app using runas,  starting several instances of
> it.
> Each instance at startup loads its own icon in the systray, which causes big
> and unnecessary crowd.
> I wonder, is it possible to start these instances without systray icon
> loaded or to remove these icons afterwards?
> Please advice,


Have you scoured the net for 3rd party help?  Specifically, I'd look
for command line options your 3rd party app might support.  It may
be they already gave you that option....

What is a command line option?  It is text added to the command line
that informs the program of any selected options.  For example, typing
the following text into the Run box tells IE you want to navigate to
google when the program runs.

iexplore.exe "http://www.google.com"

The following tells IE you want to go to google while running IE in
kiosk mode:

iexplore.exe -k "http://www.google.com"

(Use Alt+F4  to close the kiosk window)

Thus, your 3rd party app may also accept command line options,
one of which may avoid showing the system tray icon.  If that is the
case, it would be far easier to go that route than to try to remove
icons they have placed in the tray!

(FYI - I don't know how to remove the icons, I'd have to research it,
just like you are doing.)

HTH
LFS
Author
15 Mar 2009 3:02 PM
Kathy
Show quote Hide quote
"Larry Serflaten" <serfla***@usinternet.com> wrote in message
news:%23%23xH0vVpJHA.5412@TK2MSFTNGP04.phx.gbl...
>
> "Kathy" <Kathy@kathy> wrote
>>            I am facing this problem.
>> My app starts the 3rd party app using runas,  starting several instances
>> of
>> it.
>> Each instance at startup loads its own icon in the systray, which causes
>> big
>> and unnecessary crowd.
>> I wonder, is it possible to start these instances without systray icon
>> loaded or to remove these icons afterwards?
>> Please advice,
>
>
> Have you scoured the net for 3rd party help?  Specifically, I'd look
> for command line options your 3rd party app might support.  It may
> be they already gave you that option....
>
> What is a command line option?  It is text added to the command line
> that informs the program of any selected options.  For example, typing
> the following text into the Run box tells IE you want to navigate to
> google when the program runs.
>
> iexplore.exe "http://www.google.com"
>
> The following tells IE you want to go to google while running IE in
> kiosk mode:
>
> iexplore.exe -k "http://www.google.com"
>
> (Use Alt+F4  to close the kiosk window)
>
> Thus, your 3rd party app may also accept command line options,
> one of which may avoid showing the system tray icon.  If that is the
> case, it would be far easier to go that route than to try to remove
> icons they have placed in the tray!
>
> (FYI - I don't know how to remove the icons, I'd have to research it,
> just like you are doing.)
>
> HTH
> LFS
>
>
Larry, thank you for your response.
I am well aware what command line is and how to use it.
Unfortunately, that 3rd party app not only does not allow to use any command
line parameters
(even if it did, I would be surprised to see such command.), but also it
does not provide the option in Options not to display icon in systray.
The only way I can see it is to programmatically remove the icon from
systray.
Because my app is launching the instances of that 3rd party app I have some
kind of control over the it.
I do have the handle to the instances and I know the processID.
Windows have some mechanism to hide inactive systray icons. How to use it in
this case?
Thanks,
Kathy
Author
15 Mar 2009 4:13 PM
jaf
Hi Kathy,
Can we assume you have tried closing the current instance, which should close the icon, before launching a new instance?

John


Show quoteHide quote
"Kathy" <Kathy@kathy> wrote in message news:u4r7V8XpJHA.3868@TK2MSFTNGP02.phx.gbl...
>
> "Larry Serflaten" <serfla***@usinternet.com> wrote in message
> news:%23%23xH0vVpJHA.5412@TK2MSFTNGP04.phx.gbl...
>>
>> "Kathy" <Kathy@kathy> wrote
>>>            I am facing this problem.
>>> My app starts the 3rd party app using runas,  starting several instances
>>> of
>>> it.
>>> Each instance at startup loads its own icon in the systray, which causes
>>> big
>>> and unnecessary crowd.
>>> I wonder, is it possible to start these instances without systray icon
>>> loaded or to remove these icons afterwards?
>>> Please advice,
>>
>>
>> Have you scoured the net for 3rd party help?  Specifically, I'd look
>> for command line options your 3rd party app might support.  It may
>> be they already gave you that option....
>>
>> What is a command line option?  It is text added to the command line
>> that informs the program of any selected options.  For example, typing
>> the following text into the Run box tells IE you want to navigate to
>> google when the program runs.
>>
>> iexplore.exe "http://www.google.com"
>>
>> The following tells IE you want to go to google while running IE in
>> kiosk mode:
>>
>> iexplore.exe -k "http://www.google.com"
>>
>> (Use Alt+F4  to close the kiosk window)
>>
>> Thus, your 3rd party app may also accept command line options,
>> one of which may avoid showing the system tray icon.  If that is the
>> case, it would be far easier to go that route than to try to remove
>> icons they have placed in the tray!
>>
>> (FYI - I don't know how to remove the icons, I'd have to research it,
>> just like you are doing.)
>>
>> HTH
>> LFS
>>
>>
> Larry, thank you for your response.
> I am well aware what command line is and how to use it.
> Unfortunately, that 3rd party app not only does not allow to use any command
> line parameters
> (even if it did, I would be surprised to see such command.), but also it
> does not provide the option in Options not to display icon in systray.
> The only way I can see it is to programmatically remove the icon from
> systray.
> Because my app is launching the instances of that 3rd party app I have some
> kind of control over the it.
> I do have the handle to the instances and I know the processID.
> Windows have some mechanism to hide inactive systray icons. How to use it in
> this case?
> Thanks,
> Kathy
>
>
Author
15 Mar 2009 5:08 PM
Kathy
No, I am using several (sometimes up to 16 instances simultanouesly) and
that creates chaos in the systray.
Kathy

Show quoteHide quote
"jaf" <m*@here.com> wrote in message
news:enyaxjYpJHA.1184@TK2MSFTNGP04.phx.gbl...
> Hi Kathy,
> Can we assume you have tried closing the current instance, which should
> close the icon, before launching a new instance?
>
> John
>
>
> "Kathy" <Kathy@kathy> wrote in message
> news:u4r7V8XpJHA.3868@TK2MSFTNGP02.phx.gbl...
>>
>> "Larry Serflaten" <serfla***@usinternet.com> wrote in message
>> news:%23%23xH0vVpJHA.5412@TK2MSFTNGP04.phx.gbl...
>>>
>>> "Kathy" <Kathy@kathy> wrote
>>>>            I am facing this problem.
>>>> My app starts the 3rd party app using runas,  starting several
>>>> instances of
>>>> it.
>>>> Each instance at startup loads its own icon in the systray, which
>>>> causes big
>>>> and unnecessary crowd.
>>>> I wonder, is it possible to start these instances without systray icon
>>>> loaded or to remove these icons afterwards?
>>>> Please advice,
>>>
>>>
>>> Have you scoured the net for 3rd party help?  Specifically, I'd look
>>> for command line options your 3rd party app might support.  It may
>>> be they already gave you that option....
>>>
>>> What is a command line option?  It is text added to the command line
>>> that informs the program of any selected options.  For example, typing
>>> the following text into the Run box tells IE you want to navigate to
>>> google when the program runs.
>>>
>>> iexplore.exe "http://www.google.com"
>>>
>>> The following tells IE you want to go to google while running IE in
>>> kiosk mode:
>>>
>>> iexplore.exe -k "http://www.google.com"
>>>
>>> (Use Alt+F4  to close the kiosk window)
>>>
>>> Thus, your 3rd party app may also accept command line options,
>>> one of which may avoid showing the system tray icon.  If that is the
>>> case, it would be far easier to go that route than to try to remove
>>> icons they have placed in the tray!
>>>
>>> (FYI - I don't know how to remove the icons, I'd have to research it,
>>> just like you are doing.)
>>>
>>> HTH
>>> LFS
>>>
>>>
>> Larry, thank you for your response.
>> I am well aware what command line is and how to use it.
>> Unfortunately, that 3rd party app not only does not allow to use any
>> command line parameters
>> (even if it did, I would be surprised to see such command.), but also it
>> does not provide the option in Options not to display icon in systray.
>> The only way I can see it is to programmatically remove the icon from
>> systray.
>> Because my app is launching the instances of that 3rd party app I have
>> some kind of control over the it.
>> I do have the handle to the instances and I know the processID.
>> Windows have some mechanism to hide inactive systray icons. How to use it
>> in this case?
>> Thanks,
>> Kathy
>>
Author
15 Mar 2009 4:23 PM
Larry Serflaten
"Kathy" <Kathy@kathy> wrote

> Unfortunately, that 3rd party app not only does not allow to use any command
> line parameters

Why don't they learn???

> Windows have some mechanism to hide inactive systray icons. How to use it in
> this case?

As I said, I'd have to research the process.  This looks promising...
Note Sub Main at the very bottom...

http://groups.google.com/group/microsoft.public.vb.general.discussion/msg/d65621e0c8662262

LFS
Author
15 Mar 2009 4:32 PM
Nobody
Call Shell_NotifyIcon(NIM_DELETE). It requires the app hWnd, which you can
get with FindWindow/EnumWindows, and uID. Loop through all ID's from 0 to
2G. It's most likely a low number, less than 1000, and the number is the
same(usually hard coded within the application). Watch for Err.LastDLLError
property because that will tell you the exact number.

There is a chance that Windows could block this, especially if the target
process is running under a different user than your application,
particularly under Vista.