怎样注册进程为服务器进程?还有,我用SystemParamentInfo函数使程序为屏幕保护状态,但好象不能屏蔽Alt+F4键,怎样才能屏蔽掉所有的系统键(在Win2K下)?

解决方案 »

  1.   

    在windows中,一般每个应用程序都要通过一个API函数RegisterSeviceProcess()向系统申请注册成为一个服务进程,并且也是通过这个函数注销其服务进程来结束这个服务进程的运行。如果一个进程注册为一个服务进程,通过Ctrl+Alt+Del就可以在任务列表里看见这个进程的标题。而如果一个进程运行了但没有向系统申请注册成为服务进程那么就不会在任务列表里显示。该函数存放于系统内核Kernel32.dll中,具体声明如下:
    DWORD RegisterServiceProcess(
    DWORD dwProcessID,//一个服务进程的进程标识,如果是0则注册当前进程
    DWORD dwType/*指出是注册还是注销当前的进程,其状态分别为:RSP_SIMPLE_SERVICE和RSP_UNREGISTER_SERVICE*/
    );
    例如:
    hDLL=LoadLibrary("KERNEL32");//加载DLL函数
    //得到函数地址
    lpRegisterServiceProcess=(LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL,"RegisterServiceProcess");
    //执行函数,在任务列表中隐藏程序
    lpRegisterServiceProcess(GetCurrentProcessId(),1);
    //卸载链接库
    FreeLibrary(hDLL);