- 在线时间
- 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)0 m! I2 }/ D: t$ X; f' {: N b1 V
{5 I' z/ W5 t7 M
HANDLE hToken;
( g8 U4 [1 ~6 m: l8 S) t) D TOKEN_PRIVILEGES tkp; </P>
( ~. Q9 H+ ]/ u( z< > // Get a token for this process.& Q) ]: Z6 c# V; G
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))/ m( l% Y& \% h3 a' \
{
- E, x# w. x6 Y6 w4 T' g. h, z6 e return false;
' e. |$ y3 X0 k }</P>% i& R3 s+ P2 M' [' _4 \
< > // Get the LUID for the shutdown privilege.
1 C4 U E& {' A( k) } LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>
0 u E/ x- n1 H1 ~0 p0 K k< > tkp.PrivilegeCount = 1; // one privilege to set% x* `) c; P0 t
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>6 ~1 V9 h( `6 q1 R' D4 H; M
< > // Get the shutdown privilege for this process.
' J( z# c3 ]2 {; m AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>* u8 T, p7 y! J' m9 [2 z/ y
< > if (GetLastError() != ERROR_SUCCESS)4 |' o( r: K0 b4 t" F
{
5 K$ e+ z9 r, F0 B$ j return false;
* Z+ [3 O6 _2 C: q& o& A: W, u }
5 n4 z: w* `# k! X8 X1 Q f/ a switch(kind)
0 g t* q% `' Y7 h {case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启
1 H9 {5 J+ a+ N9 s3 s- q case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机( N7 a- ]( o& B! g8 r
case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销
4 o h4 V; f; _/ N- ] case 4: SetSystemPowerState(false, true); break; //休眠1 N. Z- M3 G5 @; T C! v- h
case 5: SetSystemPowerState(true, true); break; //待机& B8 Q1 G4 `5 o9 n; X9 E7 d
default: break;! C9 g; M) }2 C. E5 I r, r \
}) E$ ]; }1 m* Y8 A) t
return true;</P>6 H$ ]6 S% ]+ C" e5 m( r& M
< >}</P> |
zan
|