- 在线时间
- 1957 小时
- 最后登录
- 2024-6-29
- 注册时间
- 2004-4-26
- 听众数
- 49
- 收听数
- 0
- 能力
- 60 分
- 体力
- 40960 点
- 威望
- 6 点
- 阅读权限
- 255
- 积分
- 23863
- 相册
- 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)
6 h+ p& N# b+ G0 |/ I{ {9 P1 ]% a5 ?0 G* {- i9 P
HANDLE hToken;
5 I% {# P& y6 M. m TOKEN_PRIVILEGES tkp; </P>0 X( y( P M, Q3 C* I
< > // Get a token for this process.
6 ?7 s4 L8 W1 ^9 o: U5 h2 S if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
! c1 |1 ]8 V+ K ~" t* _8 B0 x8 C, ` {
3 q' U6 t3 L$ J% b% U2 p return false;! G# y' p5 s/ s- q* H6 k; B: e
}</P>
7 E3 A- t9 l& t8 w% l6 g% u& T& _< > // Get the LUID for the shutdown privilege.4 p1 J0 m0 }( L! g; S9 q f* F
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>, T* o! j7 s+ k; L8 Z- C
< > tkp.PrivilegeCount = 1; // one privilege to set+ R" x9 S7 t% W- ?
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>
?9 Z" w6 v% n' L# L7 t< > // Get the shutdown privilege for this process.( l) v5 M, q3 v' a. F7 k
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>3 c" m! w- L: P6 c& v
< > if (GetLastError() != ERROR_SUCCESS)
2 N( ^7 f% X( z# h- C {
3 n* i( R! {7 T+ o# C; y' L return false;
" w4 P3 v( \, {6 `8 `% o }
& `7 W# E- A* ^% U' G% A switch(kind)
' v- Q" |/ F9 M6 @ {case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启0 C, z. |+ b8 `: Y0 q) U8 F
case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机4 l% n5 t8 t9 o7 r! _# I
case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销- R: Z: C8 F& G0 M# P' a
case 4: SetSystemPowerState(false, true); break; //休眠" g, @( Q( a4 s5 g6 x% C
case 5: SetSystemPowerState(true, true); break; //待机
7 g3 c: `. ]- v& ?' A7 D2 h7 o8 { default: break;4 b5 }- f$ C4 K
}
- m- f* s2 t# y return true;</P>. e2 ^1 w% E+ m
< >}</P> |
zan
|