- 在线时间
- 1957 小时
- 最后登录
- 2024-6-29
- 注册时间
- 2004-4-26
- 听众数
- 49
- 收听数
- 0
- 能力
- 60 分
- 体力
- 40959 点
- 威望
- 6 点
- 阅读权限
- 255
- 积分
- 23862
- 相册
- 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)0 K( B F* e0 I' k9 @! v+ L$ m
{
' \' _ ]: `9 K$ E8 p- q: G HANDLE hToken;8 d+ ]$ p8 a; t: b% A8 U ~9 c
TOKEN_PRIVILEGES tkp; </P>! e9 ? o8 F6 j, \ c- g
< > // Get a token for this process.
) l9 Y8 h/ }& d/ G0 L" P) g2 h if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))5 \0 F3 H! q9 ^ T' ~
{
7 m. G- l4 d1 o' p, b, Y return false;
# w9 Y( m; h! c3 E" Y) M; ~- } }</P>
/ \5 Z# \& m* Z- ?: y< > // Get the LUID for the shutdown privilege.
' H. c% |7 }# C N4 O' A LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>
5 H) D2 |% v; w% Z< > tkp.PrivilegeCount = 1; // one privilege to set
2 ^+ J9 n& a- q6 g7 u5 S5 q1 @ tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>8 ]3 E9 w7 f# D& Z! x
< > // Get the shutdown privilege for this process.* C) X% B0 o3 M* R; }
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>
# a- M1 g) A- z< > if (GetLastError() != ERROR_SUCCESS)
! T* }$ l; L. R. L1 y {
' i. o4 u8 M4 W/ i4 t+ _ return false;- T" y" U1 a( v1 k4 A/ F
}
; e0 H; y, P+ h/ u+ W+ x switch(kind)# ^. T, ~' K+ U C8 E
{case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启 ?. ]9 I' l! r+ g. G+ I* Z6 T
case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机
% E' \ Q! R4 C; l1 q0 l$ q) o case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销
4 f* n3 D$ z$ s- Q/ V4 M. J0 d0 A case 4: SetSystemPowerState(false, true); break; //休眠7 [. H" b3 S7 Q7 [, u3 j
case 5: SetSystemPowerState(true, true); break; //待机7 d5 P& B# J4 L$ c: x
default: break;
6 h& f3 w, r5 n0 ^5 T8 T# x4 C& D }
: _% O9 R# g, l* v7 w4 h+ R, i! N+ s return true;</P>( } A% L& j" ?+ }. A
< >}</P> |
zan
|