- 在线时间
- 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)
$ Q M$ N7 A6 r! p0 m# h) f- v{
/ ?. C3 z* z. c$ Q/ C HANDLE hToken;
r9 E" v' P4 B TOKEN_PRIVILEGES tkp; </P>4 i6 n% [6 X8 w5 O
< > // Get a token for this process.: a" H4 B' Z0 F) D) C- ~% O0 X
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)). U; H) H" R/ x
{0 ?! V6 D5 Z6 z
return false;
- i9 P0 [5 n% X+ x: S }</P>8 q* `- V1 K0 E5 K+ r9 C& Z0 l
< > // Get the LUID for the shutdown privilege.
$ s7 d: {7 N, k" |3 s LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>
0 ~, t! B! j/ I0 Y' k+ F< > tkp.PrivilegeCount = 1; // one privilege to set
+ x4 r1 V6 t V1 {) D% X/ u- @ tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>( j! l, L4 X- D6 s. n
< > // Get the shutdown privilege for this process.! J p! @* k' _0 e/ l M, G* o+ E( B; `
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>
& D; L) h7 M3 K< > if (GetLastError() != ERROR_SUCCESS)
( N; F7 [0 ]+ d/ `3 i- c {0 j8 t: A G5 P2 K3 D6 t0 t
return false;
% P X2 e& b5 A5 U9 _ B }6 [, n. k' p- D; e. T$ W
switch(kind)3 n9 u. R/ w3 d6 s- G0 y
{case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启
: D! \, }4 Y9 x" p) B% u case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机, d6 [% z# x6 j4 l: K
case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销# M& j) Y& T1 \1 Q+ H$ N4 R4 U
case 4: SetSystemPowerState(false, true); break; //休眠
% \6 F! N- d$ T case 5: SetSystemPowerState(true, true); break; //待机
# N6 P, ~8 g" K& d default: break;
% o: c, q; J' G& }- M2 w' b }" {' s# O% N* f; w+ z& o% g
return true;</P>
( b/ V7 B1 J# m2 z+ X) `0 D< >}</P> |
zan
|