- 在线时间
- 1957 小时
- 最后登录
- 2024-6-29
- 注册时间
- 2004-4-26
- 听众数
- 49
- 收听数
- 0
- 能力
- 60 分
- 体力
- 40960 点
- 威望
- 6 点
- 阅读权限
- 255
- 积分
- 23863
- 相册
- 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)
4 R; n2 M5 }0 Z{
; C# M9 N% B2 b' [/ m' I5 s HANDLE hToken;" U/ H! L; ?/ i! F
TOKEN_PRIVILEGES tkp; </P>
+ j3 B6 w4 T- Y/ ]7 [7 `< > // Get a token for this process.0 s5 Q" J' o7 a/ i
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))# W8 O! Z% g2 ?# @, K1 x0 t
{
) r! L# {. A) W# Z% J return false;
`, Z. }, d" v. L) W t3 P }</P>3 O4 H& E* B: Z2 E2 l; C
< > // Get the LUID for the shutdown privilege.9 Y) x j# X/ Y* Z+ w
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>9 K: S. l/ X5 b1 n7 g! j8 ]
< > tkp.PrivilegeCount = 1; // one privilege to set9 W$ T% n5 ~$ f6 Y! v
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>
% x: B8 q& E: d7 O B9 W( @' n< > // Get the shutdown privilege for this process.
& X8 \* K: E! ~2 \ AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>2 w) g- b |& X, I( J8 h
< > if (GetLastError() != ERROR_SUCCESS)
. }0 R( E) a r" P: H {
! O* i3 J7 Y, N, H- d return false;6 x E' N: w V" v* `. J
}" [1 O7 E7 m5 P2 J8 m$ v/ Z, F
switch(kind)! L& c& K) Z. m/ R* u9 i T
{case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启
# T7 l8 b7 W8 B0 R, R case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机5 |% |0 N4 B, ]+ n4 X' R
case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销
, Q+ T7 }5 x0 c7 R% l4 c0 J case 4: SetSystemPowerState(false, true); break; //休眠0 h6 L$ L5 s" ~3 n2 I% N3 b
case 5: SetSystemPowerState(true, true); break; //待机9 L, ?' p& m7 {; i i9 |' p
default: break;
- S# k9 j9 @) n7 C- Q }
1 N' E# N& p8 b3 u0 L$ o return true;</P>
6 Q4 X- ?+ L# I- ^3 ]: O< >}</P> |
zan
|