Используйте следующее, если у вас есть права):
ExitWindowsEx (EWX_POWEROFF | EWX_FORCEIFHUNG,
SHTDN_REASON_MINOR_OTHER);
Это приведет к отключению питания, в то же время давая приложениям возможность завершить работу (если они займут слишком много времени, они все равно будут отключены).
Это часть Win32 API, а не стандартная C ++, но это потому, что C ++ не предоставляет способа сделать это напрямую.