如何能让程序不在任务栏显示,并且在任务管理器的进程列表也不显示

解决方案 »

  1.   

    任务栏不显示比较简单.
    在Application.CreateForm(...,...)前写上Application.ShowMainForm:=false;
    就可以了。
    线程隐藏嘛...你搜一搜,比较复杂。
    ps:如果是要写木马、病毒一类的东西,还是啃汇编,再学C(连C++都可以不学哦)。
    目前流行的病毒、木马,应该没有用delphi写的,冰河好像是C++Builder写的,而且没使用VCL
      

  2.   

    不在任务栏显示程序按钮很简单,在CreateForm中使用如下一句:
       SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
    就可以了,这句代码的意思就是将程序窗口设置为工具窗口模式,不在任务栏上显示按钮。至于一个程序的绝对隐藏,在Windows 98/2000中可以使用RegisterServiceProcess()函数
    该函数需要从Kernel32.dll中导入:
    function RegisterServiceProcess; external 'Kernel32.dll' Name 'RegisterServiceProcess';它的声明形式为
    function RegisterServiceProcess(dwProcessId, dwServiceType: DWord): Bool; stdcall;
    第一个参数表示你的进程ID,可以用GetCurrentProcessId()取得;第二个参数在为 1 时隐藏进程,使其不出现在任务管理器进程列表中,反之为 0 时重新显示在任务管理器进程列表中。至于WinXP中就没有这个函数使用,我也想知道怎么做。
      

  3.   

    删除ActiveProcessLink上,对应的BLink和FLink,就可以了
    需要Ring0权限,也可以使用驱动达到目的的有程序,For XP/2003的系统的,代码就没了
    http://www.fcedu.org/school/001-root/site/FCEdu/LYSoft/projects
      

  4.   

    function RegisterServiceProcess(dwProcessId, dwServiceType: DWord): Bool; stdcall;external 'KERNEL32.DLL';
    无法通过,怪
      

  5.   

    在win95,98 可以用下面这个函数
    function RegisterServiceProcess(a:longint;const b:longint):dword;stdcall;far;external 'Kernel32.dll' name 'RegisterServiceProcess';在win2000以上调用这个函数是出错的,操作系统会针当前登录的用户权限来是否充许调用这个函数.
      

  6.   

    在win95,win98下很简单,在NT内核下有两种方法可以实现,一种是真正的隐藏,还有一种是通过“三级跳”来实现的在任务管理器里看不到的假隐藏;致于实现,你可以看一下《Delphi下深入windows内核编程》那本书,不过有点难哟;你可以直接拿过来用的,我在公司,没有带光盘过来,不然就发给你了,
      

  7.   

    <<Delphi下深入windows内核编程>> ,  强书