启动后直接最小化到托盘栏_魏前之技术人生_百度空间
教你个最简单的方法:  

步陬1.主窗体为form1,将form1设置成透明,并把大小缩成一个点,放在角落。    
步陬2.双击主窗体,加入代码:SetWindowLong(Application.handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW); 

在您的程序中加入这两步就可以实现程序一启动主窗口不显示。
其实原理是一样的吧,最小化的时候捕获SYSCOMMAND消息,把窗口最小化到左下角处  
再加一个托盘图标。  

那么你程序一运行,Onshow事件中,发送最小化消息不就行啦  
postMessage(Application.handle,WM_SYSCOMMAND,SC_MINIMIZE,0);

unit   Unit1;  
interface  
uses  
Windows,   Messages,   SysUtils,    
Classes,   Graphics,   Controls,   Forms,  
Dialogs,ShellAPI;  

const  
WM_BARICON=WM_USER+200;  

type  
TForm1   =   class(TForm)  
private  
procedure   WMSysCommand(var  
Message:   TMessage);   message   WM_SYSCOMMAND;  
procedure   WMBarIcon(var  
Message:TMessage);message   WM_BARICON;  
{   Private   declarations   }  
public  
{   Public   declarations   }  
end;  

var  
Form1:   TForm1;  

implementation  

{$R   *.DFM}  
procedure   TForm1.WMSysCommand  
(var   Message:TMessage);  
var  
lpData:PNotifyIconData;  
begin  
if   Message.WParam   =   SC_ICON   then  
begin  
//如果用户最小化窗口则将窗口  
//隐藏并在任务栏上添加图标  
lpData   :=   new(PNotifyIconDataA);  
lpData.cbSize   :=   88;  
//SizeOf(PNotifyIconDataA);  
lpData.Wnd   :=   Form1.Handle;  
lpData.hIcon   :=   Form1.Icon.Handle;  
lpData.uCallbackMessage   :=   WM_BARICON;  
lpData.uID   :=0;  
lpData.szTip   :=   'Samples';  
lpData.uFlags   :=   NIF_ICON    
or   NIF_MESSAGE   or   NIF_TIP;  
Shell_NotifyIcon(NIM_ADD,lpData);  
dispose(lpData);  
Form1.Visible   :=   False;  
end  
else  
begin  
//如果是其它的SystemCommand消息则调用系统缺省处理函数处理之。  
DefWindowProc(Form1.Handle,Message.  
Msg,Message.WParam,Message.LParam);  
end;  
//  
end;  

procedure   TForm1.WMBarIcon(var   Message:TMessage);  
var  
lpData:PNotifyIconData;  
begin  
if   (Message.LParam   =   WM_LBUTTONDOWN)   then  
begin  
//如果用户点击任务栏图标则将图标删除并回复窗口。  
lpData   :=   new(PNotifyIconDataA);  
lpData.cbSize   :=   88;//SizeOf(PNotifyIconDataA);  
lpData.Wnd   :=   Form1.Handle;  
lpData.hIcon   :=   Form1.Icon.Handle;  
lpData.uCallbackMessage   :=   WM_BARICON;  
lpData.uID   :=0;  
lpData.szTip   :=   'Samples';  
lpData.uFlags   :=   NIF_ICON   or   NIF_MESSAGE   or   NIF_TIP;  
Shell_NotifyIcon(NIM_DELETE,lpData);  
dispose(lpData);  
Form1.Visible   :=   True;  
end;  
end;  

end.  


郑重声明:资讯 【启动后直接最小化到托盘栏_魏前之技术人生_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——