Solved

removing systray icons

Posted on 2003-11-14
8
717 Views
Last Modified: 2010-04-05
Is it possible to remove another program's systray icon from my app? If so, how?
0
Comment
Question by:lopardo2003
  • 3
  • 2
  • 2
  • +1
8 Comments
 
LVL 2

Expert Comment

by:TheLeader
ID: 9754514
theres two way (immediate)
1- hide it.
2- kill the process.

and theres also two way (after restart)
1- remove it from startup menu.
2- remove it from registry.
0
 
LVL 2

Expert Comment

by:TheLeader
ID: 9754518
what are you looking for exactly ?
0
 

Author Comment

by:lopardo2003
ID: 9755353
I don't want to close the other program, I just want to remove or hide another's program systray icon from my program. For example, if you configure Winamp to stay on the systray, I'd like to remove that icon but keeping Winamp running.
0
Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

 
LVL 2

Expert Comment

by:TheLeader
ID: 9757118
i think this is what you are looking for
AM Softwares AMWinEnv v.1.1
http://www.torry.net/windows.htm
0
 

Expert Comment

by:Silker
ID: 9758534
You have to know some things about the specified icon in the tray.Each program that puts it's icon in the tray passes a WM_COPYDATA message to the taskbar.The lParam (I think ) is a pointer to a TNotifyIconData that helds information about the icon in the tray.If you manage to subclass the taskbar and intercept the message you will have this structure and with Shell_NotifyIcon(NIM_DELETE,@...) we will be able to hide the icon
0
 

Expert Comment

by:Silker
ID: 9761979
Sorry , I was wrong. The lParam is a Pointer to a PCopyDataStruct.You can extract TNotifyIconData from PCopyDataStruct lpData member (PNotifyIconData(Integer(PByte(copyData.lpData))+8)) where copyData is of type
PCopyDataStruct
0
 
LVL 20

Accepted Solution

by:
Madshi earned 100 total points
ID: 9797594
You can do that by using "madKernel", which is free for non-commercial purpose (only). E.g. this:

uses madKernel;

begin
  Process('msimn.exe').TrayIcons.Delete;  // hide Outlook's tray icons
end;

http://help.madshi.net/TrayIcons.htm#ITrayIcons.Delete
0
 

Author Comment

by:lopardo2003
ID: 9798985
It works perfectly, thanks a lot! :-)
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…

825 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question