delphi窗口在任务栏、切换列表、应用程序列表中都不显示的方案

码农公社  210.net.cn   210= 1024  10月24日一个重要的节日--码农(程序员)节

目的:

1. 窗口不在任务栏显示。

2. 窗口不显示在Alt+Tab的切换列表中。

3. 在任务管理器的应用程序列表中不显示。

示例:

type

  TAppWndBrowser = class( TForm )

    published

      procedure CreateParams( var Params: TCreateParams ); override;

      procedure WndProc(var Message: TMessage); override;

  end;


implementation


{$R *.dfm}



{ TAppWndBrowser }

procedure TAppWndBrowser.CreateParams( var Params: TCreateParams );

begin

  inherited CreateParams( Params );

  Params.ExStyle := WS_EX_TOOLWINDOW;

end;


procedure TAppWndBrowser.WndProc(var Message: TMessage);

begin

  inherited WndProc(Message);

  if (not Application.MainFormOnTaskBar) and (Message.Msg = WM_SHOWWINDOW) then

  begin

    ShowWindow(Application.Handle, SW_HIDE);

    SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);

  end;

end;


小小技巧,权当抛砖引玉。

评论