如何在Windows2000中动态禁用/启用Ctrl-Alt-Delete( 七 )


}
else
{
if(DeinjectLibInfo.dwReturnValue =https://www.rkxy.com.cn/dnjc/= 0)
{

}
else
{
MessageBox(NULL,_T("Failed to unload .Err=")SysErrorMessage(DeinjectLibInfo.dwReturnValue),NULL,MB_OK | MB_APPLMODAL | MB_ICONWARNING);
}
}

//恢复权限
CloseHandle(hRemoteProcess);
EnablePrivilege(SE_DEBUG_NAME,false);
}
//---------------------------------------------------------------------------
//使用方法
BOOL CTaskKeyMgr::IsCtrlAltDeleteDisabled(){return bInjectFuncLoaded;}
if (dwFlags & CTRLALTDEL) {
if(bDisable&&!IsCtrlAltDeleteDisabled()){
InjectFunc();
bInjectFuncLoaded=TRUE;
}
if(!bDisable&&IsCtrlAltDeleteDisabled()){
DeinjectFunc();
bInjectFuncLoaded=FALSE;
}
}

注意
【如何在Windows2000中动态禁用/启用Ctrl-Alt-Delete】如果Windows的后续版本更改了Ctrl Alt Delete的处理,本文所提供的技术可能不再工作 。如果你在你的代码中使用了本文的技术,请注意你可能必须在未来修改你的代码 。
已知问题尚无Unicode版本 VirtualAllocEx分配的内存没有用VirtualFreeEx释放 在Debug方式下运行会造成Winlogon出错(出错后请不要确认或取消那个出错对话框,然后保存打开的所有文档,关闭所有程序,通过正常的途径关机,否则Windows会立刻关机)

推荐阅读