- 在线时间
- 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)
! Y( k) T) a4 k/ ?; b{4 A# t) M: _/ O
HANDLE hToken;
0 t$ w; B* U/ ~, w- c' t# H TOKEN_PRIVILEGES tkp; </P>, q4 m. r# s V& Q7 m( y- Z7 D
< > // Get a token for this process.
. U) A, N# R& ]2 S) W; R+ D( @% o: o& U if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))! u: @; n. }* N8 C, B
{
+ f3 z! O" M3 @2 N0 W/ I2 m2 x! g return false;; Z5 v7 t6 o: L, \
}</P> a* D3 H8 r4 c4 ]" W' p u
< > // Get the LUID for the shutdown privilege.
& D1 Y) n$ H/ |% e- Y& k4 ~ LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>. P8 U( s- d! _9 n5 P. F. P3 D
< > tkp.PrivilegeCount = 1; // one privilege to set
& K3 t, @ M: P2 P tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>
; t. Z0 [# U3 q; I7 C< > // Get the shutdown privilege for this process.
7 Z& A; s/ j9 u1 n AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>
; Q, M+ e. r4 o; i< > if (GetLastError() != ERROR_SUCCESS)
) g9 }# k9 a* G; z+ `1 q; t {
. @3 |: f: P& S& A return false;4 ~$ X/ d* R7 F
}8 o* R& H$ R; T; F5 R$ `& P) A/ ~! x
switch(kind)2 h4 \$ _( u9 q/ f$ F- ]
{case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启
! T* x! Y9 i/ B/ Q case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机) C0 x, ?3 p& I7 O
case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销
@/ u4 b2 g" u# P8 d case 4: SetSystemPowerState(false, true); break; //休眠
4 K$ g: M3 _: H1 z: G9 v. { case 5: SetSystemPowerState(true, true); break; //待机2 W1 ?* T, G o! X
default: break;
9 |$ F# K7 p: o5 N1 Y }
6 K7 O: H" V" F8 d7 a7 e* U) K return true;</P>
. u% V4 W( ?3 I$ [< >}</P> |
zan
|