- 在线时间
- 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)
; b& v' i2 ?% a! I j{7 y J8 s! v+ h# k$ ~' P
HANDLE hToken;/ y# v2 E$ U" o R0 @6 y
TOKEN_PRIVILEGES tkp; </P>
- L" e6 E' \* e9 K/ g$ X< > // Get a token for this process.
* J8 W! {8 ~+ b( Y! ^0 h0 ~ if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)). h/ f9 h }6 C/ z
{
* d! {' o3 q; O return false;$ x \5 @7 @2 {6 f. a9 w
}</P>: a: q/ s3 S6 R, s; g
< > // Get the LUID for the shutdown privilege.
; d- _2 c( X# v0 G# y# y LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>
: {7 s5 K, x" G- Z' Q( s! X; z< > tkp.PrivilegeCount = 1; // one privilege to set
$ r* x9 @ ~$ G: d1 R9 `' O1 C" y tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>& F" h) f' E: o
< > // Get the shutdown privilege for this process.: m, I' h" S, X
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>- n1 ^8 K- S1 `% B# J
< > if (GetLastError() != ERROR_SUCCESS)
V8 S q, {$ i1 ]( l {
5 x$ E: `: _% J% Z return false;
5 Y# I# y* R& i, J2 Z4 S | }7 D D9 }# ?2 i7 c. C
switch(kind)2 ]1 h) W+ R: @) i! G9 A1 u* H1 d5 J
{case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启
8 e+ V* J d. t9 B: d1 }/ j1 ~& V case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机
) Z7 m8 n5 y. f5 }' y case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销, y: [1 ]2 N+ m3 e
case 4: SetSystemPowerState(false, true); break; //休眠
9 ]- x0 M1 e1 L+ G case 5: SetSystemPowerState(true, true); break; //待机
6 d! M" f) x4 g8 X2 R default: break;8 B& b. b) c* u, a) e
}/ b0 ~" V# r5 J! Z; _. w( P+ V
return true;</P>
/ n7 L" v( w* y# W# P% a< >}</P> |
zan
|