试试下面的,可能你的权限没有提升吧BOOL ShutdownSystem()
{
  OSVERSIONINFO osi;  osi.dwOSVersionInfoSize = sizeof(osi);
  GetVersionEx(&osi);  if (osi.dwPlatformId == VER_PLATFORM_WIN32_NT) {
    HANDLE hToken;
    LUID luid;
    TOKEN_PRIVILEGES tp;    if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES,
      &hToken))
      return FALSE; if (!LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &luid)) {
      CloseHandle(hToken);
      return FALSE;
    }    tp.PrivilegeCount = 1;
    tp.Privileges[0].Luid = luid;
    tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;    AdjustTokenPrivileges(hToken, FALSE, &tp, 0, NULL, NULL);
    if (GetLastError() != ERROR_SUCCESS)
        return FALSE; CloseHandle(hToken);
  }