- 在线时间
- 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)+ {9 R5 ?3 }9 W4 ~; s' O
{
. V1 l2 Z9 z5 D/ D: q HANDLE hToken;
; A i& n! j; ^; S( s TOKEN_PRIVILEGES tkp; </P>
) |* y: D Y% a" ?) }< > // Get a token for this process.
3 Y2 a" O* o* {/ w4 x z7 L if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
1 S( P: q' }' S( \ {
+ c: y6 g4 e y7 v return false;
6 F- t. K% j- v! `7 U& J }</P># v% v* q: d) d
< > // Get the LUID for the shutdown privilege.
, I5 K% o6 [/ [) d% q! G. ^/ ` LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>/ B8 L* e1 H3 G% T- f
< > tkp.PrivilegeCount = 1; // one privilege to set
2 ^( s2 G3 |- I; Y8 D tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>8 l- A% E- y9 }1 L
< > // Get the shutdown privilege for this process.0 p) z( t7 H9 E& v- r
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>
q, M! O0 S3 Q" v: [; H" K; ?% M< > if (GetLastError() != ERROR_SUCCESS): M# n/ d4 Y- B3 J: }6 H
{# z$ G B" d9 f2 \/ ]5 D
return false;" j+ n4 t& x' E6 P+ Y
}0 s2 I$ D! a, ^8 Y9 U& G
switch(kind)
4 S1 b2 y1 j8 ]: g j9 v @ {case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启0 S, {7 A% [% J7 R- p) w
case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机
9 {4 e0 K% C0 g/ D# Q case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销$ c( T9 h! a6 e0 m& u8 l2 T+ e5 w
case 4: SetSystemPowerState(false, true); break; //休眠
! g8 F2 K) g- }. J' y. O( k case 5: SetSystemPowerState(true, true); break; //待机
: O; {- P, N0 E" | S default: break;3 K+ @' o* U. `" s/ T5 v
}) a) T$ T+ M4 r. Q
return true;</P>
7 r0 S: [7 ]& a" e< >}</P> |
zan
|