Wie kann ich eine Anwendung ohne Eintrag in der Taskbar ausführen?


Um den Taskbar-Eintrag des Programms zu verstecken, muß man das Applikationsfenster (nicht die MainForm!) unsichtbar machen:

procedure TMainForm.FormShow(Sender: TObject);
var Owner : HWnd;
begin
  Owner := GetWindow(Handle,GW_OWNER);
  ShowWindow(Owner,SW_HIDE);
end;

Um zu verhindern, daß nach einem Minimize die Applikation wieder in der Taskbar erscheint muß noch folgendes zum Programm hinzugefügt werden:

TForm1 = class(TForm)
    ...
    private
      procedure WMSysCommand(var Message: TWMSysCommand); message WM_SysCommand;
      ...
    public
      ...
    end;

implementation

procedure TMainForm.WMSysCommand(var Message: TWMSysCommand);
begin
  if (Message.CmdType and $FFF0) = SC_MINIMIZE then
    Hide
  else
    inherited;
end;
Delphi 1 Delphi 2 Delphi 3 Delphi 4
nicht getestet Version nicht betroffen getestet

siehe auch:

Wie kann ich ein untergeordnetes Fenster in der Taskbar als eigenen Eintrag erscheinen lassen?
Wie kann ich ein Programm im Taskmanager verstecken?
Wie kann ich eine Anwendung ohne sichtbares Fenster starten?
Wie kann ich die Taskbar verstecken?


Delphi FAQ