Title: System Tray Icon 2010
Question: Tray Icon
Tray Icon is an example of a program that, when executed, resides in the system tray and shows a simple popup menu to close and minimize the application. Upgraded to work with delphi 7 up until 2010, and in windows 7
Answer:
System Tray Icon 2010
Tray Icon is an example of a program that, when executed, resides in the system tray and shows a simple popup menu to close and minimize the program. Upgraded to work with delphi 7 up until 2010, and in windows 7
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
program HellSystemTray;
uses
Forms, Controls, Dialogs, ShellApi, Windows, Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
var
NotifyIconData : TNotifyIconData;
begin
Application.Initialize;
Application.ShowMainForm := False;
Application.Title := 'HellSystemTray';
Application.CreateForm(TForm1, Form1);
NotifyIconData.cbSize := SizeOf( NotifyIconData );
NotifyIconData.Wnd := Form1.Handle;
NotifyIconData.uCallbackMessage := WM_ShellIcon;
NotifyIconData.hIcon := Application.Icon.Handle;
NotifyIconData.szTip := 'Hell System Tray';
NotifyIconData.uFlags := NIF_TIP + NIF_MESSAGE + NIF_ICON;
try
Shell_NotifyIcon( NIM_ADD, @NotifyIconData );
ShowWindow(Application.Handle, SW_HIDE);
Application.Run;
finally
Shell_NotifyIcon( NIM_DELETE, @NotifyIconData );
end;
end.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
UNIT1.PAS
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus;
const
WM_ShellIcon = WM_USER + 1;
type
TForm1 = class(TForm)
pm1: TPopupMenu;
viewApp: TMenuItem;
exitApp: TMenuItem;
minimizeApp: TMenuItem;
procedure FormActivate(Sender: TObject);
procedure exitAppClick(Sender: TObject);
procedure viewAppClick(Sender: TObject);
procedure minimizeAppClick(Sender: TObject);
private
{ Private declarations }
procedure ShellIcon( var Msg : TMessage ); message WM_ShellIcon;
procedure OnMinimize( var Msg : TWMSysCommand ); message WM_SYSCOMMAND;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.ShellIcon(var Msg: TMessage);
var
Point : TPoint;
begin
case Msg.LParam of
WM_LBUTTONDBLCLK : begin
Show;
SetForegroundWindow( Handle );
end;
WM_RBUTTONUP : begin
SetForegroundWindow( Handle );
GetCursorPos( Point );
pm1.Popup( Point.x, Point.y );
PostMessage( Handle, WM_USER, 0, 0 );
end;
end;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
ShowWindow(Application.Handle, SW_HIDE);
end;
procedure TForm1.exitAppClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TForm1.OnMinimize(var Msg: TWMSysCommand);
begin
if( Msg.CmdType = SC_MINIMIZE ) or
( Msg.CmdType = SC_CLOSE ) then
Hide
else
inherited;
end;
procedure TForm1.viewAppClick(Sender: TObject);
begin
Show;
SetForegroundWindow( Handle );
end;
procedure TForm1.minimizeAppClick(Sender: TObject);
begin
Hide;
end;
end.
UNIT1.DFM
object Form1: TForm1
Left = 210
Top = 389
Width = 979
Height = 563
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Icon.Data = {
0000010002002020000001002000A81000002600000010100000010018006803
0000CE1000002800000020000000400000000100200000000000801000000000
0000000000000000000000000000008000FF008000FF008000FF008000FF0080
00FF008000FF008000FF008000FF008000FF008000FF008000FF008000FF0080
00FF008000FF008000FF008000FF008000FF008000FF008000FF008000FF0080
00FF008000FF008000FF008000FF008000FF008000FF008000FF008000FF0080
00FF008000FF008000FF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF82B89DFF81B8
9CFF82B89DFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF82B8
9DFF81B89CFF81B89CFF82B89DFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF80B59AFF75A68DFF73A2
8AFF75A68DFF80B59AFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF80B59AFF75A6
8DFF72A289FF73A28AFF75A68DFF80B59AFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF81B79BFF75A58DFF5B826EFF5579
67FF5C836FFF75A68DFF82B89DFF83BA9EFF83BA9EFF81B79BFF73A38BFF5B81
6EFF547765FF547765FF5C826FFF75A68DFF82B89DFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF82B89DFF70A288FF628F76FF496F58FF4D6E
5DFF547765FF73A28AFF81B89CFF83BA9EFF82B89DFF6FA086FF5B866EFF476D
55FF436751FF4D6D5CFF547765FF73A28AFF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF73A48AFF25762CFF137717FF176C1BFF4367
51FF537564FF72A289FF81B89CFF83BA9EFF72A389FF25762CFF117614FF0D74
0FFF166B1BFF436751FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF157919FF037F04FF0D740FFF4267
50FF537564FF72A289FF81B89CFF81B79BFF629376FF137817FF037F03FF027F
02FF0D740FFF426750FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF027F02FF0C740FFF4267
50FF537564FF72A289FF80B69BFF72A389FF23762BFF047F04FF008000FF0280
02FF0C740FFF426750FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF027F02FF0C740FFF4267
50FF537564FF72A289FF7FB499FF619275FF137817FF028002FF008000FF0280
02FF0C740FFF426750FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF027F02FF0C740FFF4267
50FF537564FF71A088FF6E9F84FF23762BFF047F04FF028002FF008000FF0280
02FF0C740FFF426750FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF027F02FF0C740FFF4267
50FF527463FF6D9B83FF59896BFF117715FF037E03FF0B760DFF027F02FF0280
02FF0C740FFF426750FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF027F02FF0C740FFF4267
50FF507361FF538164FF1E7424FF047E05FF0C750FFF34693EFF0B760EFF027F
02FF0C740FFF426750FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF027F02FF0C740FFF4166
4FFF426750FF1A701FFF047E04FF037E04FF19701EFF4A7959FF0F7612FF027F
02FF0C740FFF426750FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF027F02FF0C740FFF4065
4DFF386344FF0C740EFF037E04FF156E19FF457154FF5F8C72FF117715FF027F
02FF0C740FFF426750FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF027F02FF0C740EFF3763
43FF156D19FF037E04FF0C740EFF3E694AFF648F79FF6B9B81FF147917FF027F
02FF0C740FFF426750FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF027F02FF0A750CFF2E63
37FF0B740DFF037E04FF176D1BFF4F765FFF72A189FF6E9F85FF147918FF027F
02FF0C740FFF426750FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF028002FF027F02FF0A76
0CFF037E03FF0C740EFF3E694AFF66917BFF7DB196FF70A288FF147918FF027F
02FF0C740FFF426750FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF028002FF008000FF0280
02FF037E03FF176E1CFF4F775FFF73A28AFF80B69BFF70A288FF147918FF027F
02FF0C740FFF426750FF537564FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF028002FF008000FF0280
02FF0D750FFF436F51FF68947EFF7EB398FF82B99DFF71A388FF147918FF027F
02FF0C740FFF436750FF547765FF72A289FF81B89CFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF147918FF028002FF008000FF047E
05FF1E7324FF5F8B72FF7CB095FF83BA9EFF83BA9EFF71A388FF147918FF027F
02FF0D750FFF486F57FF5B826EFF75A68DFF82B89DFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF71A388FF157919FF037F03FF047E05FF2076
27FF5C8C6FFF7CB096FF83BA9EFF83BA9EFF83BA9EFF71A388FF157919FF047F
04FF127716FF628F76FF75A58DFF80B59AFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF73A48AFF25762DFF16791BFF23762BFF6394
77FF7FB499FF83BA9EFF83BA9EFF83BA9EFF83BA9EFF73A48AFF25762DFF1679
1BFF25762CFF70A288FF81B79BFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF82B89DFF73A48AFF71A388FF73A48AFF81B7
9BFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF82B89DFF73A48AFF71A3
88FF73A48AFF82B89DFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA9EFF83BA
9EFF83BA9EFF83BA9EFF008000FF008000FF008000FF008000FF008000FF0080
00FF008000FF008000FF008000FF008000FF008000FF008000FF008000FF0080
00FF008000FF008000FF008000FF008000FF008000FF008000FF008000FF0080
00FF008000FF008000FF008000FF008000FF008000FF008000FF008000FF0080
00FF008000FF008000FF008000FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000280000001000000020000000010018000000
00004003000000000000000000000000000000000000FCFAFAF2E8E1F2E7E1F2
E9E1F3E9E2F4EAE3F4EBE4F5ECE4F6ECE5F7EDE6F7EEE8FAF3EEF9F0E9F9F1E9
FAF2EBFDFBF8F8F2EDCCA386CA9D7ECCA182D3AC8FD6AF92D8B295D8AF8FDBB2
93DEB696E1BA99E4BE9EE7C1A1EAC5A4EECDAEFAF2EBF8F2EDC89B7CC69675CD
A182F3E7DDECDED5F5E8DFD9AF90D9AD8BDCB18EDFB592E2B996E5BD9AE9C19D
EDC8A7FAF2EAF8F2EDC89B7CC69675CDA182ECDDD495624CEADED7D9B091D9AD
8BDCB18EDFB592E2B996E5BD9AE9C19DEDC8A7FAF2EAF8F2EDC89B7CC69675CD
A182ECDDD48A5139EADED7D9B091D9AD8BDCB18EDFB592E2B996E5BD9AE9C19D
ECC8A7FAF2EAF8F2EDC89B7CC69675CDA182ECDDD48A5039EADED7D9AF90D9AD
8BDCB18EDFB592E2B996E5BD9AE8C09DEBC7A5FAF2EAF8F2EDC89B7CC69675CD
A182ECDDD48A5039EADED7DBB699DBB393DEB697E1BA9AE2B996E5BD9AE8C09D
EAC5A4FAF2EAF8F2EDC89B7CC69675CDA182ECDDD48A5039E2D4CEEADED7EADE
D7EBDFD8F8EFE7E5BF9FE5BD9AE8C09DEAC6A5FAF2EAF8F2EDC89B7CC69675CD
A182ECDDD47F40278A503A8A513A8A513996624CEFE1D8E7C1A1E6BD9AE9C19D
ECC8A7FAF2EBF8F2EDC89B7CC69675CDA182ECDED58A5039E2D4CEEFE4DEEEE0
D7EEDFD6F7ECE2E8C3A2E6BD9AE9C19DEDC9A8FCF6F0F8F2EDC89B7CC69675CD
A183EDE1DA8A513AEADED7DFBDA3DEB99CE1BC9FE3BFA2E4BE9EE5BD9AE9C19D
EDC8A7FAF2EBF8F2EDC89B7CC69675CDA182ECDED58A5039E2D4CDEDDFD6EDDF
D6EEE0D6EEE0D7F8ECE3E8C2A1E9C19DEDC8A7FAF2EAF8F2EDC89B7CC69675CD
A182ECDDD48A50398A503A8B513A8B513A8B533C97634EEFE1D9E8C2A1E9C19D
EDC8A7FAF2EAF8F2EDC89B7CC69675CDA182F3E6DDE9DDD6E9DDD7EADED7EADE
D8EADFD9EBE0DAF9F0E8E8C2A2E9C19DECC8A7FAF2EAF8F2EDCCA387CA9E7FCD
A182D4AC8FD6AF93D8B296DBB599DEB99CE1BC9FE3BFA2E6C3A6E7C1A1EAC5A4
ECCBACFAF2EBFDFBF9F7EDE6F7EDE5F7EDE6F7EEE7F7EEE7F8EEE8F8EFE8F8F0
E8F9F0E9F9F1E9F9F1E9FAF1EAFAF2EAFAF2EBFDFBF800000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000}
OldCreateOrder = False
OnActivate = FormActivate
PixelsPerInch = 96
TextHeight = 13
object pm1: TPopupMenu
Left = 280
Top = 80
object viewApp: TMenuItem
Caption = 'Open'
OnClick = viewAppClick
end
object minimizeApp: TMenuItem
Caption = 'Minimize'
OnClick = minimizeAppClick
end
object exitApp: TMenuItem
Caption = 'Exit'
OnClick = exitAppClick
end
end
end