Работа с TaskBar

Previous  Top  Next

    
 

 

 

Code:

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.

 

 

 

©Drkb::01774

       

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