如何从任务栏上隐藏应用程序的按纽?

解决方案 »

  1.   

    在WIN98下,不要用窗口标题找DOS窗口,最好用窗口类名找,因为每个DOS窗口的
    类名都是一样,具体叫什么我忘记了,你可以用WinSight(WS.EXE)查一下,我以前做过类似,没问题的。//这时系统中存在两个apache进程,其中一个不可见,但findwindow发现的并不一定是我
    //想隐藏的窗口,
    >>:可以用GetWindow(handle,HWND_NEXT)遍历窗口,用GetWindowText取窗口标题,IsWindowVisibleprocedure TForm1.Button1Click(Sender: TObject);
    var
      hwndclose:hwnd;
      str:string;
    begin
      str:=edit1.text;
      hWndClose := FindWindow(nil, PChar(str));
      ShowWindow(hwndclose,SW_hide);
    end;
    其中edit中输入 你要隐藏窗口的 在任务栏中 显示的名字
      

  2.   

    program Project1;uses
    Forms,
    Unit1 in 'Unit1.pas' {Form1},
    Windows;{$R *.RES}var
    ExtendedStyle : Integer;begin
    Application.Initialize;//============================================================== 
    ExtendedStyle := GetWindowLong (Application.Handle, GWL_EXSTYLE);SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle OR WS_EX_TOOLWINDOW
    AND NOT WS_EX_APPWINDOW);
    //=============================================================== Application.CreateForm(TForm1, Form1);
    Application.Run;
    end. 
    ///////////////////////////////////////////////////////////////
      一般Windows 95运行程序时都会在任务栏上出现按钮,如果你的程序是一个监视程序,那么出现按钮就不是明智之举了。要实现该功能就要在OnCreate事件里利用到API函数SetWindowLong
    procedure TForm1.FormCreate(sender:TObject);
    begin
    SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
    end;
    /////////////////////////////////////////////////////////
    ShowWindow(Application.Handle, SW_HIDE); 
    SetWindowLong(Application.Handle, GWL_EXSTYLE, 
      GetWindowLong(Application.Handle, GWL_EXSTYLE) 
        or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);