19821119
   
级别:管 理 员 威望:3 经验:0 货币:6 体力: 来源:19821119 总发帖数:1801 注册日期:2002-01-29
|
|
查看 邮件 主页 QQ 消息 引用 复制 下载
当我们要创建一个程序让其字后台运行,且不有任何信息给人发觉时,我们就必须屏蔽掉Ctrl+Alt+Del三个键,使其即使按下Ctrl+Alt+Del也没发现该程序。下面是一个例子:
步骤1 在主窗体的FormCreate事件中加入下列代码
Application.ShowMainForm:=false; 隐藏状态拦显示图标。
步骤2
加入Frmmain.Visible :=false;隐藏主窗体。
注意:当程序运行后是无法关闭退出的,除非你注销WINDOWS。通常我们会在状态拦内显示一图标,类似金山防火墙一样。方法是在主窗体的FormCreate事件中加入下列代码:
iconcount:=0; icondata.cbsize:=sizeof(icondata);
icondata.wnd:=Handle; icondata.uid:=100;
icondata.uflags:=nif_message+nif_icon+nif_tip;
icondata.ucallbackmessage:=Wm_user+1;
icondata.hicon:=application.Icon.Handle ; strpcopy
(icondata.sztip,application.Title );
shell_notifyicon(nim_add,@icondata); 在加入上述代码前须在public里申明
Icondata:TNotifyicondata; iconcount:integer;
并且加入一PopupMenu来响应鼠标右键事件,PopupMenu里可加入“退出”、“显示主窗体”和“隐藏主窗体”。为了响应鼠标事件必须在
private里申明一个过程procedure wndproc (var msg:Tmessage);override;
添加一个过程: {鼠标点击托盘图标显示菜单——过程} procedure
TFrmmain.wndproc (var msg:Tmessage); var p:tpoint; begin
case msg.Msg of WM_USER+1: case msg.LParam of
WM_rbuttondown:begin getcursorpos(p);
popupmenu1.popup(p.X,p.Y ); end; end; end;
inherited; end; //退出程序 procedure
TFrmmain.N11Click(Sender: TObject); begin close; end;
//隐藏主窗体 procedure TFrmmain.N9Click(Sender: TObject);
begin Frmmain.Visible :=false; end; //显示主窗体
procedure TFrmmain.N8Click(Sender: TObject); begin
Frmmain.Visible :=true; end;
|