wClass.lpfnWndProc:=@DefWindowProc;
wClass.hInstance := hInstance;
wClass.lpszClassName := 'antigamem';
RegisterClass(wClass);CreateWindowEx(0,wClass.lpszClassName,nil,WS_CAPTION,
0,0,1,1,0,0,hInstance,nil);象这样创建一个窗体,但不显示,在Windows 2K/XP 中看不到
但在Windows 9X 中的 "结素任务" 能看到,名称显示的是 antigamem ,也就是窗体的类名,请问如何隐藏? 尽量不要用 象创建服务  这种复杂的方法.

解决方案 »

  1.   

    还是老办法,注册成为系统服务,在win98下就看不到进程了
      

  2.   

    怎么具体实现呢?还有,在Windows 2K/XP 中有这个API函数吗?
      

  3.   

    Windows 2K/XP 中没有RegisterServiceProcess这个函数的,http://community.csdn.net/Expert/topic/3336/3336604.xml?temp=8.689517E-02
      

  4.   

    那怎么办?
    我在Windows XP 下编写的程序,能不能告诉我说没有这个函数?
      

  5.   

    在Win9X系统下可以通过调用RegisterServiceProcess API这个API函数将进程注册为一个服务模式的进程,这样在Win9X系统下用Ctrl+Alt+Del调出的任务管理器中将不会出现这个进程了.RegisterServiceProcess API函数存放于系统内核Kernel32.dll中.具体声明如下:
    DWORD RegisterServiceProcess(
    DWORD dwProcessId, //服务进程的进程标志,如果为NULL表示当前进程
    DWORD dwType //如果参数为RSP_SIMPLE_SERVICE 表示注册当前进程
    //如果参数为RSP_UNREGISTER_SERVICE 表示取消当前进程的注册
    );
    函数调用成功返回1,否则返回0
    通过对RegisterServiceProcess 这个API函数的调用我们就能实现在Win9X系统下的进程隐藏了.
      

  6.   

    2000/xp 系统请采用
    http://community.csdn.net/Expert/topic/3336/3336604.xml?temp=8.689517E-02介绍的方法,还是可以的
      

  7.   

    我明白大家的意思,不过 关键是 我现在在 WindowsXp下编程,但要求编出来的程序既能在Windows98 下隐藏,也能在WindowsXP下能够运行,怎么弄? 我现在加进去了RegisterServiceProcess,但在XP下根本无法编译.
      

  8.   

    是啊,无法定位该api函数的位置,你可以先判断一下操作系统的类型,然后按照相关代码执行:if(windows=98)
      RegisterServiceProcess;
    if(windows=xp)
      相关代码
      

  9.   

    是不是要动态 装载Kernel32.dll?怎么弄呢?
      

  10.   

    弄了两个多小时,ok了,必须动态调用 Kernel32.dll,否则在WindowsXP下无法编译.