- 在线时间
- 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)- D8 o! S, q5 I9 F" k
{1 `6 H+ X" D1 `1 C( F4 S! H3 k
HANDLE hToken; `8 N" o, w, `" V! T) s5 S
TOKEN_PRIVILEGES tkp; </P>
# V" A3 {% t j* z9 @< > // Get a token for this process.
3 i; s$ w, F( p8 M# J9 C$ h if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
5 X3 f: B) Q4 s% ? {
1 [3 c# Y' l' x1 O2 C return false;
/ t0 b6 X* C/ `/ j }</P>9 }6 ~: M9 N( z$ U1 m. ?
< > // Get the LUID for the shutdown privilege.
6 p2 T. r0 R9 K' y) m LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>6 P1 C# K6 e8 j3 i: R
< > tkp.PrivilegeCount = 1; // one privilege to set
5 \. M; u1 j: g0 a' s4 o, n4 N# w tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>
1 B1 E g. |' s; F< > // Get the shutdown privilege for this process.
9 V4 z6 o" w9 }2 I b9 ? AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>7 r- ~ V0 f1 F% ?0 n* }; U$ P- P
< > if (GetLastError() != ERROR_SUCCESS)) U! F8 G* t1 n6 d [: {
{" B. s/ I+ s. R
return false;
/ c/ e) I! x7 ?* B4 T/ C }
/ [/ Y, L' k. T4 ~ J switch(kind)$ E5 S: l# A S* J9 V8 _6 T
{case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启
3 n+ f+ Q9 t# M, y' i% G case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机
- G. }0 O3 l' V% Q1 ]* O: M case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销0 X. G& @. n6 o! u
case 4: SetSystemPowerState(false, true); break; //休眠
( { @8 e$ j$ F) r: k4 Y" e case 5: SetSystemPowerState(true, true); break; //待机
% B8 z* d/ \$ e$ t; X8 r default: break;
+ F" |( T* k7 v$ G }
$ W6 a L$ T A* a return true;</P>/ o% p+ N; |7 `" X( J2 Y. L
< >}</P> |
zan
|