- 在线时间
- 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)
! f% Z7 j) ~4 L* d7 ^6 c% q6 J7 _{7 A- _3 s- Y* p) b; Q
HANDLE hToken;9 H R, v X9 Q) ]' O/ u
TOKEN_PRIVILEGES tkp; </P>
5 ~; y- E5 R1 B: c; s< > // Get a token for this process.
& ?6 ]" m1 W2 L if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))4 x" ^3 {8 E9 [0 n$ A
{. M/ h5 J7 b. D& r
return false;
q7 V* [7 G& f, t( p+ U/ G0 g9 ] }</P>
' `% `: h5 j" Q) y< > // Get the LUID for the shutdown privilege.+ r2 ~! _* K: e# h6 q/ \! H
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>
3 `! t! T0 ^: ?2 ?$ m7 Z< > tkp.PrivilegeCount = 1; // one privilege to set" S' N7 F& \4 _$ B! ~
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>- N3 H% t* w8 U) ~
< > // Get the shutdown privilege for this process.9 C8 j7 o( [8 U6 ] T1 _. q; I; Y; m
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>
2 ^) r3 Z. W+ d4 h< > if (GetLastError() != ERROR_SUCCESS)4 r$ ?" R! [0 Z! ^
{- A2 t/ G$ M# i1 T. h1 i
return false;# i; i$ {# H3 P% [
}8 \0 m& b+ W- F9 u9 n
switch(kind). y! o% q/ x5 ~0 i$ A7 ]
{case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启# [) z8 }5 V" ~9 j/ U
case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机
( J# Q9 Z0 n7 a, s case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销
6 ^& v+ l# h$ e6 q; w" S5 q case 4: SetSystemPowerState(false, true); break; //休眠
( [# p5 A- A. n case 5: SetSystemPowerState(true, true); break; //待机
L. q# E- j+ W# k8 r/ D* W default: break;
t9 m. ]$ O! c- j }/ B, m5 Y# L, t, c5 V0 [, g0 F/ |
return true;</P>
, l/ `& ?( t( _) d. C( c" w! y< >}</P> |
zan
|