- 在线时间
- 1957 小时
- 最后登录
- 2024-6-29
- 注册时间
- 2004-4-26
- 听众数
- 49
- 收听数
- 0
- 能力
- 60 分
- 体力
- 40957 点
- 威望
- 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)
( } v6 L3 \; x' i* i{6 W$ \/ f3 D% ^
HANDLE hToken;
) C4 Y4 o- i* N* ?5 }, h; ~ TOKEN_PRIVILEGES tkp; </P>9 X( [4 O# u% _6 V- X. Y
< > // Get a token for this process.
) G) e% @3 r [* P6 U! k if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)). Z" U* L3 K4 v6 A% v1 }
{4 ]6 d a0 C. r$ O8 i
return false;$ g& E! ` u) J
}</P>
: o* O6 I4 r/ |/ r s< > // Get the LUID for the shutdown privilege.
1 W( ?3 x; q) H! p; A LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>
7 b; m E# e* X d" H7 O$ [$ ~< > tkp.PrivilegeCount = 1; // one privilege to set# {; Z7 f8 J5 r
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>% h' y% I# V! |& {3 p+ m# p
< > // Get the shutdown privilege for this process.
$ n8 t' |* ]( N0 c AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>
& ?5 g$ X! a3 p m< > if (GetLastError() != ERROR_SUCCESS)
: H0 m7 T5 F! M) f" t8 J {
! w1 }* `* }: m/ o2 t return false;
( ? P7 p. u/ D: D. N5 {0 b4 v- Z }
' D6 U9 J' t) F/ ~3 \ switch(kind)3 c/ F( H" n2 s2 l6 Z
{case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启
/ A4 Z3 t+ z8 A9 b" Y( B' a. s case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机
- _3 e2 X4 \' [ case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销
5 t. U: o/ _' S( _7 r' |) Q3 @- } case 4: SetSystemPowerState(false, true); break; //休眠$ c- x5 }1 @# X$ B) U8 |
case 5: SetSystemPowerState(true, true); break; //待机
{- n/ y3 @7 c/ S0 m+ J: S. D& a default: break;
8 ~( k7 H% \, ?' z }5 q( U C1 A7 ~1 x# a0 i3 m' E
return true;</P>- q4 T5 u6 {2 V! o2 x
< >}</P> |
zan
|