- 在线时间
- 1957 小时
- 最后登录
- 2024-6-29
- 注册时间
- 2004-4-26
- 听众数
- 49
- 收听数
- 0
- 能力
- 60 分
- 体力
- 40957 点
- 威望
- 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)8 l0 {9 r/ a7 e) A% U& F& P
{
# A( ]' B' Q$ c& A& {) Z/ L HANDLE hToken;
, F& M3 q6 Q( ?! S6 a! |' s5 J TOKEN_PRIVILEGES tkp; </P>
: ] k: R0 i y* {< > // Get a token for this process.
" \/ G! C* Z/ B3 I( H; X if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))) u* u% p7 f: A0 s1 T( D
{: N5 P# [- [/ B) [
return false;# g+ G' F2 M3 h" ~
}</P>
! g) g3 C3 }% q T9 i< > // Get the LUID for the shutdown privilege.: ?8 j. ~7 o) M8 G4 ?6 z0 \3 i
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>$ ~. k8 j, E) o" }
< > tkp.PrivilegeCount = 1; // one privilege to set( i! t# z5 n3 Y
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P> f. G3 I" d/ `+ Q. i
< > // Get the shutdown privilege for this process.
& ^) ~3 x, V$ I: O1 @ AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>: [; ~3 n$ G' ?
< > if (GetLastError() != ERROR_SUCCESS)
4 g% V9 T1 N C- s( { {* b, B2 D/ E h4 _; H# I; z0 _
return false;
4 W0 u& u& k3 w! Z! [8 p }- E4 \8 ]4 U% U- K% f
switch(kind)" n7 m2 [* L1 _4 }! z' Z
{case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启
0 l/ i* R. a/ H8 `, `6 ]' \* X: Z case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机- C# Y% \/ @. E' j# r6 R( \, l
case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销
! G( ^3 T" U4 N) Q1 f( w case 4: SetSystemPowerState(false, true); break; //休眠 A# p* e- V6 T. _/ k, x: _% O1 z
case 5: SetSystemPowerState(true, true); break; //待机
/ t- p: r7 j- m% h8 w% J default: break;9 y C0 K2 O3 x: G/ e s5 a# H
}
" Z0 @) W7 u9 n- P return true;</P>
' j/ A8 `9 L, Q% a" a8 C8 m< >}</P> |
zan
|