请教各位高手了,我如何屏蔽这几个键,使其在XP/2000中不能调出任务管理器?

解决方案 »

  1.   

    如何让Ctrl+Alt+Del 组合键无效
    按下Ctrl+Alt+Del后,不会调出Windows的结束任务对话框 
    你可以调用SystemParametersInfo API 函数实现这个功能,细节如下:Const SPI_SCREENSAVERRUNNING=97Private Declare Function SystemParametersInfo Lib "User32" Alias 
    "SystemParametersInfoA"(ByVal uAction as Long,ByVal uParam as Long,lpvParam as 
    any,ByVal fuWinIni as Long) As Longdim pOld As BooleanCall SystemParametersInfo(SPI_SCREENSAVERRUNNING,True,pOld,0)如想将Ctrl+ALt+Del 的功能还原,只需将True换为False注意:此方案只适用于Windows 9X,NT不适用 按下Ctrl+Alt+Del后,会调出Windows的结束任务对话框,但本程序不出现在其中  
    要想做到这一点,你必须将你的程序注册为一个Service,这将通过把你的应用程序的Process 
    ID传递给RegisterService API声明部分:将一下这些代码复制到模块的声明部分Public Declare Function GetCurrentProcessId _Lib "kernel32" () As LongPublic Declare Function GetCurrentProcess _Lib "kernel32" () As LongPublic Declare Function RegisterServiceProcess _Lib "kernel32" (ByVal dwProcessID As Long, _ByVal dwType As Long) As LongPublic Const RSP_SIMPLE_SERVICE = 1Public Const RSP_UNREGISTER_SERVICE = 0过程:调用MakeMeService使你的程序不出现在结束任务对话框中Public Sub MakeMeService()Dim pid As LongDim reserv As Long pid = GetCurrentProcessId()regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)End Sub使你的程序重新出现在结束任务对话框中,调用UnMakeMeServicePublic UnMakeMeService()Dim pid As LongDim reserv As Long pid = GetCurrentProcessId()regserv = RegisterServiceProcess(pid, _RSP_UNREGISTER_SERVICE)最后,不要忘了在关闭你的程序时调用UnMakeService来注销其Service来释放系统资源!