1、隐藏自己的我会,连窗体和任务栏一起隐藏:
ShowWindow(Application.Handle,   SW_HIDE);
ShowWindow(Self.Handle,   SW_HIDE);、但是隐藏其他打开的软件,只能隐藏窗体,
ShowWindow(FindWindow(nil,'FLASH 8'),   SW_HIDE);
不能隐藏任务栏,在任务栏里有图标如何连任务栏一起隐藏?
2、如何遍历正在运行的所有软件查找他的句柄和窗体?

解决方案 »

  1.   

    1.
    托盘区的一排图标其实是一个ToolBar,那么取得这个ToolBar的句柄然后发送相应的消息就可以控制其ToolButton的显示了。   
        
      //---------------------------------------------------------------------------   
      //   隐藏托盘区图标函数,nIndex为图标索引,bShow若为true表示显示,否则隐藏   
      void   __fastcall   ShowTrayIcon(int   nIndex,   bool   bShow)   
      {   
              HANDLE   hShellTray   =   FindWindow("Shell_TrayWnd",   NULL);   
              if(hShellTray   ==   NULL   )   
              return;   
              HANDLE   hTrayNotify   =   FindWindowEx(hShellTray,   NULL,   "TrayNotifyWnd",   NULL);   
              if(hTrayNotify   ==   NULL)   
              return;   
              HANDLE   hToolBar   =   FindWindowEx(hTrayNotify,   NULL,   "ToolbarWindow32",   NULL);   
              if(hToolBar)   
              {   
              SendMessage(hToolBar,   TB_HIDEBUTTON,   nIndex,   !bShow);   
              }   
      }   
      void   __fastcall   TForm1::Button1Click(TObject   *Sender)   
      {   
              //   隐藏托盘区第2个图标   
              ShowTrayIcon(1,   false);   
      }   
        
      这个是以前收集ccrun写的,应该对你有用   2..function GetTitle2 (Hwnd: THandle; Param: Pointer): Boolean; stdcall;
    var
        Text: string;
    begin
        SetLength (Text, 100);
        GetWindowText (Hwnd, PChar (Text), 100);
    //    if copy(text,1,8)='系统登录' then
    form1.Edit4.Text:=text;    form1.Memo1.Lines.Add(IntToStr (Hwnd) + ': ' + Text);
        Result := True;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
        EWProc: EnumWindowsProc;
    begin
       memo1.Clear;
        EWProc := GetTitle2;
        EnumWindows (@EWProc, 0);
    end;
      

  2.   

    早说嘛,这个简单得多 
       setwindowpos(application.handle'要隐藏的窗体的句柄',hwnd_top,0,0,0,0,swp_hidewindow);