QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4020|回复: 0
打印 上一主题 下一主题

用C++Builder写的一个关闭机器的函数!

[复制链接]
字体大小: 正常 放大
ilikenba 实名认证       

1万

主题

49

听众

2万

积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    跳转到指定楼层
    1#
    发表于 2004-9-24 21:07 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    <>bool  closecomputer(int kind)  O) ^1 R  l8 _4 l: M
    {
    ' |# F4 p" S7 S6 `9 @3 o    HANDLE hToken;
    ' a1 x3 P" H" E0 p. j    TOKEN_PRIVILEGES tkp; </P>
    8 ^- _" B. l& w; l8 d# U! f<>    // Get a token for this process.* B, G% c4 q6 ~& l5 X/ S+ R4 B; z
        if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &amp;hToken))
    . `. k) v7 ]3 W5 U+ A  ]    {' F! D1 I9 g# T7 E5 W4 t
          return false;7 Y5 q2 k* R7 x# J- q( O: w2 W
        }</P>
    ( G& d- A$ ?) l6 f  p<>    // Get the LUID for the shutdown privilege.5 T# z, z% G/ o9 E1 }2 A% O, {0 p% C
        LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &amp;tkp.Privileges[0].Luid); </P>
    . ^$ x# [1 w; ^8 j8 B<>    tkp.PrivilegeCount = 1;  // one privilege to set9 \4 V  G: l7 M& v6 g) Q1 u; }
        tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>
    3 h* x. S! c% n. |" h<>    // Get the shutdown privilege for this process.4 ~! }/ \$ a( }5 Z5 Q6 M% C
        AdjustTokenPrivileges(hToken, FALSE, &amp;tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>
    8 Y+ E  T+ R9 O- W, @* \% [. t  s<>    if (GetLastError() != ERROR_SUCCESS)
    6 [1 ^0 E: a8 X( N3 P) ~    {+ n4 l+ a- B) r4 Z, k9 D1 h1 N+ Q7 a1 ?
          return false;
    ( x" ]( w& w  a( ~# \4 D7 c    }: s- {6 M" @. a
        switch(kind)5 x! w& b  @2 @" d( F; G% |+ W
        {case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启
    2 |) i. K' Y7 E% t- ?- g     case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机
    , {- K: f7 [( q" I5 j/ I3 H     case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销
    8 H. \; f$ ?  V     case 4: SetSystemPowerState(false, true); break; //休眠
    ; |* J! `: w. {5 C, {* I5 F     case 5: SetSystemPowerState(true, true); break; //待机' H7 W0 g; w( a' ]) g' m, a# H  e& a
         default:  break;
    ) ~0 t: M: n5 U5 f; @, J    }
    , K: P7 n- n9 }9 x1 s  t    return true;</P>
    " S2 H( B' G7 q6 }<>}</P>
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-18 13:37 , Processed in 0.554845 second(s), 51 queries .

    回顶部