Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Работа с TaskBar

01.01.2007
unit TaskBar;
 
interface
 
uses
Windows, ShellAPI;
 
const
 
// Дублируем описания из ShellAPI, чтобы не писать его в Uses
 
// везде, где мы используем этот модуль
  NIF_TIP
= ShellAPI.NIF_TIP;
  NIF_ICON
= ShellAPI.NIF_ICON;
 
function TaskBarAddIcon(
  hWindow
: THandle; // окно, создавшее значок
  ID
: Cardinal; // идентификатор значка
  ICON
: hIcon; // иконка
 
CallbackMessage: Cardinal; // сообщение, которое будет посылаться окну
 
Tip: PChar // ToolTip
 
): Boolean;
 
function TaskBarModifyIcon(
  hWindow
: THandle;
  ID
: Cardinal;
 
Flags: Cardinal;
  ICON
: hIcon;
 
Tip: PChar): Boolean;
 
function TaskBarDeleteIcon(
  hWindow
: THandle;
  ID
: Integer): Boolean;
 
implementation
 
function TaskBarAddIcon(
  hWindow
: THandle;
  ID
: Cardinal;
  ICON
: hIcon;
 
CallbackMessage: Cardinal;
 
Tip: PChar): Boolean;
var
  NID
: TNotifyIconData;
begin
 
FillChar(NID, SizeOf(TNotifyIconData), 0);
 
with NID do
 
begin
    cbSize
:= SizeOf(TNotifyIconData);
   
Wnd := hWindow;
    uID
:= ID;
    uFlags
:= NIF_MESSAGE or NIF_ICON or NIF_TIP;
    uCallbackMessage
:= CallbackMessage;
    hIcon
:= Icon;
    lstrcpyn
(szTip, Tip, SizeOf(szTip));
 
end;
 
Result := Shell_NotifyIcon(NIM_ADD, @NID);
end;
 
function TaskBarModifyIcon(
  hWindow
: THandle;
  ID
: Cardinal;
 
Flags: Cardinal;
  ICON
: hIcon;
 
Tip: PChar): Boolean;
var
  NID
: TNotifyIconData;
begin
 
FillChar(NID, SizeOf(TNotifyIconData), 0);
 
with NID do
 
begin
    cbSize
:= SizeOf(TNotifyIconData);
   
Wnd := hWindow;
    uID
:= ID;
    uFlags
:= Flags;
    hIcon
:= Icon;
    lstrcpyn
(szTip, Tip, SizeOf(szTip));
 
end;
 
Result := Shell_NotifyIcon(NIM_MODIFY, @NID);
end;
 
function TaskBarDeleteIcon(
  hWindow
: THandle;
  ID
: Integer): Boolean;
var
  NID
: TNotifyIconData;
begin
 
FillChar(NID, SizeOf(TNotifyIconData), 0);
 
with NID do
 
begin
    cbSize
:= SizeOf(TNotifyIconData);
   
Wnd := hWindow;
    uID
:= ID;
 
end;
 
Result := Shell_NotifyIcon(NIM_DELETE, @NID);
end;
 
end.

Взято с https://delphiworld.narod.ru