- 在线时间
- 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)
9 L1 G0 g: G0 @) K5 g7 K# c{! x( c* R4 i0 P9 T/ M( x
HANDLE hToken;# ]4 w3 G3 U% t* N: K1 h
TOKEN_PRIVILEGES tkp; </P>
* l1 B1 f0 b" b. |; X5 X$ \< > // Get a token for this process.! \' f" `: m Y- k% r
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)); s! @# ^% L; N' }$ J
{
- t& R0 F+ u1 g) W return false;
\. b8 Y5 y: A% c, g }</P>
0 r) f# k0 u; t+ X< > // Get the LUID for the shutdown privilege.
% t$ v; @) Q0 U; g- H% T$ C LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>1 v2 q! r, s/ w9 K! r
< > tkp.PrivilegeCount = 1; // one privilege to set* i, ~3 {! F. p6 S
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>
& W; H4 v- ?3 c/ P+ f< > // Get the shutdown privilege for this process.
1 v( J/ Y8 | T' @3 m8 j AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>
" k0 j* ?+ \3 a! l< > if (GetLastError() != ERROR_SUCCESS)7 d6 n$ u4 x2 t5 M
{) w' t/ W: X* C$ h8 [) T
return false;) v% E6 Y, R8 {- g) M9 j) x/ k9 r
}
; e5 z4 B( x3 q G switch(kind)
- h7 \- L, _2 `' A5 s {case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启/ d0 g" R! r0 R
case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机
* E! v/ `* |# l9 U) c) z case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销: ?( U$ X4 ^- K
case 4: SetSystemPowerState(false, true); break; //休眠
$ u& @. {& R0 U0 J3 \! [- y& n case 5: SetSystemPowerState(true, true); break; //待机5 Z4 B& |6 Z* T$ J) w+ F$ q7 I
default: break;' b: N1 l3 o9 i3 t, j7 c
}* Z5 E. W6 m2 v4 O# U4 q2 g
return true;</P>: Y( L% e6 q2 r* j2 L5 n; u/ z
< >}</P> |
zan
|