Ответы с форумов MSDN

Программное выключение компьютера в Windows

Date: 02.03.2017 15:46:42

Может через WMI попробовать

using System.Management;

void Shutdown()
{
    ManagementBaseObject mboShutdown = null;
    ManagementClass mcWin32 = new ManagementClass("Win32_OperatingSystem");
    mcWin32.Get();

    // Set security privileges
    mcWin32.Scope.Options.EnablePrivileges = true;
    ManagementBaseObject mboShutdownParams =
             mcWin32.GetMethodParameters("Win32Shutdown");
     
    mboShutdownParams["Flags"] = "12 ";//Forced power-off
    mboShutdownParams["Reserved"] = "0";
    foreach (ManagementObject manObj in mcWin32.GetInstances())
    {
        mboShutdown = manObj.InvokeMethod("Win32Shutdown", 
                                       mboShutdownParams, null);
    }
}

Добавлено:

М-да, не посмотрел, что раздел - "низкоуровневое программирование", значит вы ждете на с++. В общем, идея в том чтобы вызвать метод Win32Shutdown класса Win32_OperatingSystem с флагом 12 (Forced Power-Off). Не знаю, как это делается в с++.



Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub