- 在线时间
- 1957 小时
- 最后登录
- 2024-6-29
- 注册时间
- 2004-4-26
- 听众数
- 49
- 收听数
- 0
- 能力
- 60 分
- 体力
- 40950 点
- 威望
- 6 点
- 阅读权限
- 255
- 积分
- 23860
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 20501
- 主题
- 18182
- 精华
- 5
- 分享
- 0
- 好友
- 140
TA的每日心情 | 奋斗 2024-6-23 05:14 |
---|
签到天数: 1043 天 [LV.10]以坛为家III
 群组: 万里江山 群组: sas讨论小组 群组: 长盛证券理财有限公司 群组: C 语言讨论组 群组: Matlab讨论组 |
< >bool closecomputer(int kind)+ B6 i* c5 ?$ p! y) I2 T! d
{
7 O2 w1 W$ v6 Q& G: H9 [! @7 U HANDLE hToken;: f- C* M( A& \! C& y
TOKEN_PRIVILEGES tkp; </P>( q+ x( ^* X& C' y
< > // Get a token for this process.2 I$ N% o) m* X4 @5 K
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
! C1 a$ q) @$ [. j; i {8 ]7 I0 S Z8 D* ~# Y, s
return false;" j% a' g7 Q1 [! _! u% D. G' S
}</P>+ J& P }! }, b/ T
< > // Get the LUID for the shutdown privilege.- f3 u* F+ s% T& W/ e) l0 d
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>
% y) H- {% ?* k; J, @7 W; e< > tkp.PrivilegeCount = 1; // one privilege to set
) D9 h' c9 V% y tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>
6 e9 K4 n7 H! V9 x! ]# a< > // Get the shutdown privilege for this process.
5 c0 P0 j( g$ B AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>) ^) j, }& [. F
< > if (GetLastError() != ERROR_SUCCESS)+ z8 M8 R$ a; E$ L3 w
{
& v5 L9 s6 P9 M return false;
, q# {( t9 G9 n: M$ r. @+ t }
$ p; `, x1 N) T# J$ | switch(kind): O3 D- W& z9 h, V& a+ g7 r
{case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启! m) b1 a6 i0 P7 m& _, t, w. ~
case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机
2 r0 `( p+ z( ^% y% w case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销/ G% [' k& o' Q
case 4: SetSystemPowerState(false, true); break; //休眠
4 L \# r+ D! w# | case 5: SetSystemPowerState(true, true); break; //待机) g0 N) V+ Z* {/ l n
default: break;
1 B. O4 k5 l$ f" ~: c+ |% P }4 W9 p6 m' ]. t- ]$ @) X- N. ^% L
return true;</P>
) S( n$ L8 v, O. \1 \: F, f< >}</P> |
zan
|