不在任务栏中显示:
application.showmainform:=false;
不在任务列表中出现:
const
RSP_SIMPLE_SERVICE = $00000001;
RSP_UNREGISTER_SERVICE = $00000000;
function RegisterServiceProcess(dwProcessId, dwServiceType: DWord): Bool; stdcall;
// Place in "implementation" session
function RegisterServiceProcess; external 'Kernel32.dll' Name 'RegisterServiceProcess';
Example:
RegisterServiceProcess(0, RSP_SIMPLE_SERVICE);
RegisterServiceProcess(0, RSP_UNREGISTER_SERVICE);
application.showmainform:=false;
不在任务列表中出现:
const
RSP_SIMPLE_SERVICE = $00000001;
RSP_UNREGISTER_SERVICE = $00000000;
function RegisterServiceProcess(dwProcessId, dwServiceType: DWord): Bool; stdcall;
// Place in "implementation" session
function RegisterServiceProcess; external 'Kernel32.dll' Name 'RegisterServiceProcess';
Example:
RegisterServiceProcess(0, RSP_SIMPLE_SERVICE);
RegisterServiceProcess(0, RSP_UNREGISTER_SERVICE);
然后见上
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function RegisterServiceProcess(dwProcessId, dwServiceType: DWord): Bool; stdcall;var
Form1: TForm1;implementation
const
RSP_SIMPLE_SERVICE = $00000001;
RSP_UNREGISTER_SERVICE = $00000000;
Function RegisterServiceProcess; external 'Kernel32.dll' Name 'RegisterServiceProcess';{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterServiceProcess(0, RSP_SIMPLE_SERVICE);//不出现在任务列表中
//RegisterServiceProcess(0, RSP_UNREGISTER_SERVICE);用于恢复可写在其它事件中
SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);// 不在任务栏中显示end;end.至于自动隐藏吗?
把主窗体的WindowsState属性设为 sMinimized 就解决了
1、在form的oncreate事件里写入代码:
SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
2、在project的源码里写入代码:
application.showmainform:=false;
以上两种方法只要选一就可以实现不在任务栏中显示的目的。第二种方法还会不显示主窗体,所以适合编写后台监控、服务程序。第一种方法如果想隐藏窗体,用form.hide;窗体都会闪一下然后再消失,会让用户感觉到已经执行了程序,且隐藏窗体的代码不能写在oncreate事件里,需要用其他方法。我用的是增加一个timer控件,将它的interval属性改得很小如1,在它的timer事件里写入form1.hide;timer1.enabled:=false;最小化是不能隐藏窗体的。不在任务列表中显示的代码没有任何疑意。