- 听众
- 收听
- 积分
- 373
- 主题
- 回帖
- 0
- 精华
注册时间2009-1-6
最后登录1970-1-1
该用户从未签到
|
发表于 2010-4-19 15:15:04
|
显示全部楼层
- var
- currToken:THandle;
- prevState,newState:TTokenPrivileges;
- prevStateLen:DWORD;
- uid:TLargeInteger;
- begin
- OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, currToken);
- LookupPrivilegeValue(nil, 'SeShutdownPrivilege',uid);
- newState.PrivilegeCount:=1;
- newState.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
- newState.Privileges[0].Luid := uid;
- windows.AdjustTokenPrivileges(currToken, False, newState, sizeof(TTokenPrivileges),prevState, prevStateLen);
- ExitWindowsEx(EWX_FORCE or EWX_POWEROFF, 0 );
- end.
复制代码 |
|