- 在线时间
- 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)8 d1 f/ Z/ \. y3 q8 r/ J; A
{( z ?+ M Q& o% B- b# Q5 `
HANDLE hToken;4 S8 k! o/ ^1 f2 B& Q
TOKEN_PRIVILEGES tkp; </P>
1 N x2 g9 [) E4 l Y< > // Get a token for this process.
5 ]5 R3 y6 y- y+ Q if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))1 C1 H! P2 x5 K: o" w- }
{
/ D( J5 r C3 @" j0 r- g- X return false;
2 d+ b v, ?6 k' g }</P>
3 G: [. t* @1 S( Z< > // Get the LUID for the shutdown privilege.3 m5 V4 H6 J5 }& b+ f- v$ Q4 {
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>3 f3 w! I) \; p
< > tkp.PrivilegeCount = 1; // one privilege to set
: A1 N1 g* f7 q5 P0 d tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>9 S9 [: E. m; `# _; ]
< > // Get the shutdown privilege for this process.8 s$ K# e0 x9 N, s0 R7 W
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>
R! r: Y7 ~* f; L, S* g1 |< > if (GetLastError() != ERROR_SUCCESS)
/ ^$ Q& Q) D5 Q {
$ x' }$ M# l- V* M" s* i/ Z return false;2 j' T4 d( Z( e6 B9 V7 z! e) I" B M
}
i w" d/ _5 W. e9 f8 U3 \ switch(kind)
9 D$ W1 u6 v4 N( D {case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启
/ Q" G, I. B/ M, k: z! e case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机9 }) e7 w C% H- ]# v
case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销
" n `' W7 P0 s* l case 4: SetSystemPowerState(false, true); break; //休眠
m9 I' }! {$ d7 x& I case 5: SetSystemPowerState(true, true); break; //待机) M Y) a3 f4 T/ M2 J5 V6 F
default: break;1 [' d6 o' x8 w/ M3 }
}9 S/ G ~; d" u7 t
return true;</P>+ X' W% y: [4 j8 X" t
< >}</P> |
zan
|