ExitWindowEx(EWX_REBOOT, 0);

解决方案 »

  1.   

    请参考下面的代码 
    HANDLE hToken; T
    OKEN_PRIVILEGES tkp; 
    LUID sedebugnameValue; 
    if ( ! OpenProcessToken( GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) ) 
    return; 
    if ( !LookupPrivilegeValue( NULL, SE_SHUTDOWN_NAME , &sedebugnameValue ) ) 

    CloseHandle( hToken ); 
    return; } 
    tkp.PrivilegeCount = 1; 
    tkp.Privileges[0].Luid = sedebugnameValue; 
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
    AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL ); CloseHandle( hToken ); 
    if(!ExitWindowsEx(EWX_REBOOT,0L)) AfxMessageBox("重新启动失败!"); ////EWX_REBOOT可以用其它参数代替来实现关闭电源等功能。