关机问题(计算机锁定的情况下)(100分)

  • 主题发起人 主题发起人 zswleo
  • 开始时间 开始时间
Z

zswleo

Unregistered / Unconfirmed
GUEST, unregistred user!
在2K/XP下用代码关机步骤如下:
1、获取用户特权
2、调用ExitWindowsEX函数。
现在遇到一个问题,就是计算机在锁定的情况下却无法实现关机。
请问哪位高手知道在计算机锁定的情况下怎样实现关机?在此先谢过了。
 
设置为强制执行 ExitWindows( flag or EWX_FORCE,0);
不行的话给你个更毒的函数
const
NTDLL = 'NTDLL.DLL';

type
TNtShutdownSystemFun = function (SType:Cardinal):Boolean;Stdcall;
TMQQuitWinType = (MQQWT_Reboot, MQQWT_ShotDown, MQQWT_PowerOff);


function NtShutdownSystem(SType:Cardinal):Boolean;
var
NtShutdownSystemFun:TNtShutdownSystemFun;
HDLL:HINST;
begin
Result:=False;
HDLL:=LoadLibrary(NTDLL);
if HDLL<>0 then
begin
@NtShutdownSystemFun:=GetProcAddress(HDLL,'NtShutdownSystem');
Result:=NtShutdownSystemFun(SType);
FreeLibrary(HDLL);
end;
end;


//调用
function MQuickQuitWindows(QQType:TMQQuitWinType):Boolean;
var
SType:Cardinal;
begin
MSetProcPrivileges(GetCurrentProcess,SE_SHUTDOWN_NAME,True); //提升特权
Case QQType of
MQQWT_Reboot: SType:=1;
MQQWT_ShotDown: SType:=0;
MQQWT_PowerOff: SType:=2;
else
SType:=0;
end;
Result:= NtShutdownSystem(SType);
end;
 
谢谢iamy,我试试。
 
多人接受答案了。
 
后退
顶部