- 在线时间
- 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)3 m5 `' ^5 p" [; M5 P- o& z9 K0 o
{
5 j& C4 D% n9 P5 K4 S# O HANDLE hToken;8 H1 R9 B! i ?7 ~
TOKEN_PRIVILEGES tkp; </P>
! g( F+ O6 ]+ n< > // Get a token for this process.
- m% P/ {; x z# i/ j. I) } if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)), y3 j9 t9 }, Z: K0 \
{
5 k, ?' x$ C. ` c: V2 b return false;
* X( Y' P1 {3 H) f7 b9 U. ~ }</P>' }' ?! C4 x6 z. u2 X
< > // Get the LUID for the shutdown privilege.
- y0 x I* L/ l) C LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); </P>. U6 b2 B5 H8 _
< > tkp.PrivilegeCount = 1; // one privilege to set
$ {2 U0 b& l- l tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>
5 V' P+ w+ F# ?3 x2 Y+ ^. v( a< > // Get the shutdown privilege for this process.
3 l! @& t$ h4 G& x/ Y AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>3 _7 u3 ? H2 _# H" H
< > if (GetLastError() != ERROR_SUCCESS)
* l# ~2 A" b( G8 [5 r8 H9 u/ S L {& {: p* o$ s. P" o& X, V9 z
return false;0 I, y- d( X" r& P
}9 q4 ^" ]: R' M2 F
switch(kind); L3 E0 O' h @" O% q+ p
{case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启' i9 G4 a7 _( d" a$ L/ @- u% }- l* M
case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机9 B% _' k" \# e/ K o
case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销6 @7 T- u# B) o
case 4: SetSystemPowerState(false, true); break; //休眠. v/ f2 ?& {2 A B; e) y, c- q0 W
case 5: SetSystemPowerState(true, true); break; //待机3 l* | Q9 \/ u9 I
default: break;
; ]! d. m, o& d5 R! Z1 J1 O* F9 b }
3 C- V- {/ i3 Y: A: ^* L return true;</P>
, M4 a3 \6 o( n$ g< >}</P> |
zan
|