本文整理自网络,侵删。
以前的代码:
///////////////////////////////////////
ShowWindow(Application.Handle,SW_HIDE);
///////////////////////////////////////
在 Delphi2007/2009/2010 已经失效!
原因是 Delphi 在 Form 改写代码,在工程文件中多了:
///////////////////////////////////////
Application.MainFormOnTaskbar := True;
///////////////////////////////////////
这个主要是修正 Delphi 编译出来的 EXE 文件让它在任务栏的右键菜单和 系统的一样而已;
好了,进入正题;方法有二:
第一:
你可以将工程文件中的:
Application.MainFormOnTaskbar := True;
这句注释掉,然后就可以用
ShowWindow(Application.Handle,SW_HIDE);
这句了,结果是一夜回到解放前;因为在系统任务栏的右键菜单又只有三个了。。。
第二个方法:
/////////////////////////////////////////////////////////
procedure HideApplication(HideOnStartUp: Boolean = False);
begin {sail2000#126.com}
if HideOnStartUp then
Application.ShowMainForm := False;
if Application.MainFormOnTaskBar and (Application.MainForm <> nil) then
begin
ShowWindow(Application.MainForm.Handle, sw_Hide)
end
else
begin
ShowWindow(Application.Handle, sw_Hide); //唉。。。
end;
end;
//调用方法一:
procedure TForm1.FormCreate(Sender: TObject); //构建窗体时用
begin {sail2000#126.com}
HideApplication(True);
end;
//调用方法之二:
procedure TForm1.Button1Click(Sender: TObject);//其他需要
begin {sail2000#126.com}
HideApplication;
end;
/////////////////////////////////////////////////////////
两个调用方法,看需要用。
相关阅读 >>
Delphi xe增强的rtti妙用--动态创建包中的窗口类
Delphi实现win10下Delphi 10.3.1 inline hook 修改mac网卡地址之getadaptersaddresses
Delphi sysutils.strcopy、sysutils.strecopy
更多相关阅读请进入《Delphi》频道 >>