求教大虾!
怎样在任务管理器里将自己的进程隐藏起来!

解决方案 »

  1.   

    一般使用ShowWindowAsync函数,它像ShowWindow的一样,但立即返回(不用等待目标程序返回隐藏信息)。它有一个有趣的副作用,它从任务列表中移除目标窗口。注意,这仅仅在Windows 9x中生效,在Windows NT中无效。例子:ShowWindowAsync(Application.Handle, SW_HIDE);在csdn里面搜索一下,应该很多!
      

  2.   

    ShowWindow(Application.Handle, SW_HIDE);
    如果做的再好点,可以结合
    getwindowlong
    setwindowlong
      

  3.   

    写成一个系统的service,暂时可以躲避一下了
      

  4.   

    可以参考一下这个例子,不知可否满意使用RegisterServiceProcess来把你的程序从CTRL-ALT-DEL对话框中隐藏起来。 //------------Header file------------------------------
    typedef DWORD (__stdcall *pRegFunction)(DWORD, DWORD);class TForm1 : public TForm
    {
    __published:
    TButton *Button1;
    private:
    HINSTANCE hKernelLib;
    pRegFunction RegisterServiceProcess;
    public:
    __fastcall TForm1(TComponent* Owner);
    __fastcall ~TForm1();
    };
    //-----------CPP file------------------------------
    #include "Unit1.h"#define RSP_SIMPLE_SERVICE 1
    #define RSP_UNREGISTER_SERVICE 0__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    hKernelLib = LoadLibrary("kernel32.dll");
    if(hKernelLib)
    {
    RegisterServiceProcess =
    (pRegFunction)GetProcAddress(hKernelLib,
    "RegisterServiceProcess");if(RegisterServiceProcess)
    RegisterServiceProcess(GetCurrentProcessId(),
    RSP_SIMPLE_SERVICE);
    }
    }__fastcall TForm1::~TForm1()
    {
    if(hKernelLib)
    {
    if(RegisterServiceProcess)
    RegisterServiceProcess(GetCurrentProcessId(),
    RSP_UNREGISTER_SERVICE);FreeLibrary(hKernelLib);
    }
    }
    //-------------------------------------------------
    注: windows NT下没有RegisterServiceProcess函数。 
      

  5.   

    var
      Form1: TForm1;implementation
    const RSP_SIMPLE_SERVICE=1;
    function RegisterServiceProcess (dwProcessID, dwType: DWord) : DWord; stdcall; external 'KERNEL32.DLL';{$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
    begin
    RegisterServiceProcess(GetCurrentProcessID,RSP_SIMPLE_SERVICE);
    end;only run in windows 98!!!
      

  6.   

    ShowWindow(Application.Handle, SW_HIDE);
    如果做的再好点,可以结合
    getwindowlong
    setwindowlong
      

  7.   

    2000\XP下你可以写成vxd,不过这可是需要你的硬功夫的!
      

  8.   

    在win2000下,进程是隐藏不了的
      

  9.   

    谁说隐藏不了???我做到了,不过我没吧它隐藏,只是小改了下PID让它杀不死
    HTTP://WWW.WBZJ.COM/XZYSOFT/XPROC.RAR
      

  10.   

    XDT(大头) ( ) 信誉:98 的好象不行,是我搞错了?
      

  11.   

    实际上Win2000只能显示一级的进程,你只要把你的进程做深度调用,那么在Win2000的任务管理器中就不能看到了,不过用其它的工具还是能追捕到的