QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4061|回复: 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)
    6 h+ p& N# b+ G0 |/ I{  {9 P1 ]% a5 ?0 G* {- i9 P
        HANDLE hToken;
    5 I% {# P& y6 M. m    TOKEN_PRIVILEGES tkp; </P>0 X( y( P  M, Q3 C* I
    <>    // Get a token for this process.
    6 ?7 s4 L8 W1 ^9 o: U5 h2 S    if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &amp;hToken))
    ! c1 |1 ]8 V+ K  ~" t* _8 B0 x8 C, `    {
    3 q' U6 t3 L$ J% b% U2 p      return false;! G# y' p5 s/ s- q* H6 k; B: e
        }</P>
    7 E3 A- t9 l& t8 w% l6 g% u& T& _<>    // Get the LUID for the shutdown privilege.4 p1 J0 m0 }( L! g; S9 q  f* F
        LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &amp;tkp.Privileges[0].Luid); </P>, T* o! j7 s+ k; L8 Z- C
    <>    tkp.PrivilegeCount = 1;  // one privilege to set+ R" x9 S7 t% W- ?
        tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;</P>
      ?9 Z" w6 v% n' L# L7 t<>    // Get the shutdown privilege for this process.( l) v5 M, q3 v' a. F7 k
        AdjustTokenPrivileges(hToken, FALSE, &amp;tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);</P>3 c" m! w- L: P6 c& v
    <>    if (GetLastError() != ERROR_SUCCESS)
    2 N( ^7 f% X( z# h- C    {
    3 n* i( R! {7 T+ o# C; y' L      return false;
    " w4 P3 v( \, {6 `8 `% o    }
    & `7 W# E- A* ^% U' G% A    switch(kind)
    ' v- Q" |/ F9 M6 @    {case 1: ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0); break; //重启0 C, z. |+ b8 `: Y0 q) U8 F
         case 2: ExitWindowsEx(EWX_FORCE|EWX_SHUTDOWN|EWX_POWEROFF,0); break; //关机4 l% n5 t8 t9 o7 r! _# I
         case 3: ExitWindowsEx(EWX_FORCE|EWX_LOGOFF,0); break; //注销- R: Z: C8 F& G0 M# P' a
         case 4: SetSystemPowerState(false, true); break; //休眠" g, @( Q( a4 s5 g6 x% C
         case 5: SetSystemPowerState(true, true); break; //待机
    7 g3 c: `. ]- v& ?' A7 D2 h7 o8 {     default:  break;4 b5 }- f$ C4 K
        }
    - m- f* s2 t# y    return true;</P>. e2 ^1 w% E+ m
    <>}</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-7-18 05:39 , Processed in 0.370417 second(s), 50 queries .

    回顶部