给你一个我用于WIN2000的模块:BOOL CDracoDlg::HostShutdown()
{
HANDLE hToken;
    TOKEN_PRIVILEGES tkp;
    //********************获取权限,关闭主机*********************
    if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
        return TRUE;    LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
    tkp.PrivilegeCount = 1; 
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;    AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);    if (GetLastError() != ERROR_SUCCESS)
        return TRUE;    if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE| EWX_POWEROFF, 0))
        return TRUE;
return TRUE;
}