在win2000下怎么让关机后电源也关闭,
我有一个程序是可以在WIN2000下关机,
但是没有让电源自动短掉!
怎么来通过程序来实现?

解决方案 »

  1.   

    SystemParametersInfo()
    SPI_SETPOWEROFFACTIVE你可以参考:
      

  2.   

    EWX_POWEROFF
    调用ExitWindowsEx的时候用这个参数。
      

  3.   

    是不是真的 ATX  电源?
    如果是的用下面的void ShutDownComputer()
    {
    HANDLE hToken;              // handle to process token 
    TOKEN_PRIVILEGES tkp;       // pointer to token structure 
     
    if( !OpenProcessToken(GetCurrentProcess(),
    TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,
    &hToken) )
    {
    // 说明运行于98模式下
    ExitWindowsEx(EWX_SHUTDOWN,0);
    return;
    } // Get the LUID for shutdown privilege. 
     
    LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, 
    &tkp.Privileges[0].Luid); 
     
    tkp.PrivilegeCount = 1;  // one privilege to set    
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
     
    // Get shutdown privilege for this process. 
     
    AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, 
    (PTOKEN_PRIVILEGES) NULL, 0); 
     
    //
    // The return value of AdjustTokenPrivileges can't be tested     
    //
    if (GetLastError() != ERROR_SUCCESS) 
    {
    MessageBox("Adjuste error! ");
    return;
    } ExitWindowsEx(EWX_SHUTDOWN,0);
    }
    ATX  电源,机器本身能自动关
    用上面的函数成功关闭这可是我两天查出来的  :)
      

  4.   

    2000 下关机和 98 下是不同的,仔细查  MSDN  后会发现, 2000 下必须要有权限就是上面的原码中这句的做用
    AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, 
    (PTOKEN_PRIVILEGES) NULL, 0);
      

  5.   

    告诉你一个简单的办法,用ATX的电源但把开关改成AT的开关就可以了