unit Ri;
interface
uses
; Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
; Menus,shellapi;
const
; WM_TRAYNOTIFY=2000;
; MY_TRAY_ICON=1000;
;
type
; TGuoRiJian = class(TForm)
; ; PopupMenu1: TPopupMenu;
; ; N2: TMenuItem;
; ; procedure FormCreate(Sender: TObject);
; ; procedure FormClose(Sender: TObject; var Action: TCloseAction);
; ; procedure FormDestroy(Sender: TObject);
; ; procedure N2Click(Sender: TObject);
; private
; ; { Private declarations }
; public
; ; { Public declarations }
; ; procedure OnMin(Sender: TObject);
; ; procedure WMTrayNotify(var Msg : TMessage);Message WM_TRAYNOTIFY;
; end;
var
; GuoRiJian: TGuoRiJian;
; nid:TNOTIFYICONDATA;
implementation
{$R *.DFM}
procedure TGuoRiJian.FormCreate(Sender: TObject);
begin
; Application.OnMinimize:=OnMin;
end;
procedure TGuoRiJian.OnMin(Sender: TObject);
begin
; nid.cbSize:=Sizeof(TNOTIFYICONDATA);
; nid.Wnd:=Handle;
; nid.uID:=MY_TRAY_ICON;
; nid.uFlags:=NIF_TIP OR NIF_ICON OR NIF_MESSAGE;
; nid.hIcon:=Application.Icon.Handle;
; nid.szTip:='我的程序';
; nid.uCallbackMessage:=WM_TRAYNOTIFY;
; Shell_NotifyIcon(NIM_ADD,@nid);
; ShowWindow(Application.Handle,SW_HIDE);
end;
procedure TGuoRiJian.WMTrayNotify(var Msg: TMessage);
var
; p:TPoint;
begin
; if Msg.LParam=WM_LBUTTONDBLCLK then
; begin
; ; nid.cbSize:=Sizeof(TNOTIFYICONDATA);
; ; nid.Wnd:=Application.Handle;
; ; nid.uID:=MY_TRAY_ICON;
; ; nid.uFlags:=NIF_TIP OR NIF_ICON OR NIF_MESSAGE;
; ; nid.uCallbackMessage:=WM_TRAYNOTIFY;
; ; nid.szTip:='';
; ; Shell_NotifyIcon(NIM_ADD,@nid);
; ; ShowWindow(Application.Handle,SW_SHOW);
; ; Application.Restore;
; end
; ; else if Msg.LParam=WM_RBUTTONUP then
; ; begin
; ; ; GetCursorpos(p);
; ; ; PopupMenu1.Popup (p.x,p.y);
; ; end;
end;
procedure TGuoRiJian.FormDestroy(Sender: TObject);
begin
; Shell_NotifyIcon(NIM_DELETE,@nid);
end;
procedure TGuoRiJian.N2Click(Sender: TObject);
begin
; Close;
end;
end.