- 在线时间
- 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)
" U g8 o+ W3 W$ R% m Y y{
& N* @5 B5 ?+ s3 t HANDLE hToken;* n8 _5 U7 h$ P; `7 _" j ~
TOKEN_PRIVILEGES tkp; </P>
+ z* T) @+ N. } _' S( M- r4 M" J5 ^< > // Get a token for this process.
5 t# e2 B4 M# y _4 d if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
: H& n3 u- s& ?2 v {
1 a/ U% z: s0 j5 D2 R2 Z return false; U; d( O5 ^# v0 O
}</P>' ^0 [( x$ P1 b4 G, c2 K2 Z1 p2 o1 K
< > // Get the LUID for the shutdown privilege.$ w3 o q! s1 M% G# n* |
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>+ _, @. T$ q% {* T
< > tkp.PrivilegeCount = 1; // one privilege to set
* J; ]7 ]: J2 B1 X tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>
$ m V! w- P9 e< > // Get the shutdown privilege for this process.
) m1 B) {2 F: s5 A. F# I AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>
" `4 h/ B4 j ~% r< > if (GetLastError() != ERROR_SUCCESS)
5 X2 P/ O D. U/ E4 p {
; x0 r: [$ q" X4 L/ `& f* f& S Z return false;
3 [6 ], ]) R3 I; Q, q& i* A }
2 ^5 l6 y8 I. a) ?, \" v switch(kind)' h7 H) t6 `1 w! q9 k4 `
{case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启7 { W1 y' q% A- T
case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机
: B' A! [7 T7 r2 ?1 l7 u) `* b( A case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销
* Z" m% P6 g- ` case 4: SetSystemPowerState(false, true); break; //休眠7 a2 z1 v& t& f0 t1 A& P3 n% i
case 5: SetSystemPowerState(true, true); break; //待机
$ d3 Q, h7 G8 j" ?0 _* b1 \ default: break;
6 [/ v1 w: v4 `3 p, G }, G" l# e3 I, e
return true;</P>- {2 M% E3 b+ G( ?+ v
< >}</P> |
zan
|