PDA

Просмотр полной версии : Программное выключение компьютера. Как?


herfleisch
05.01.2010, 00:02
В общем, возникла потребность программного выключения компьютера. Т.е. когда происходит определённое событие, программа должна выключить компьютер без предупреждения. MSDN ничего не дал. Поиск по форуму - тоже. В какую сторону рыть? Пните уже куда-нибудь.

Желательно: C#, .NET

Forcer
05.01.2010, 00:06
how-to-shutdown-the-computer-from-c# (http://stackoverflow.com/questions/102567/how-to-shutdown-the-computer-from-c)

herfleisch
05.01.2010, 00:13
Собственно, на предоставленной ссылке нижеследующий код:using System.Management;

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

// You can't shutdown without security privileges
mcWin32.Scope.Options.EnablePrivileges = true;
ManagementBaseObject mboShutdownParams =
mcWin32.GetMethodParameters("Win32Shutdown");

// Flag 1 means we want to shut down the system. Use "2" to reboot.
mboShutdownParams["Flags"] = "1";
mboShutdownParams["Reserved"] = "0";
foreach (ManagementObject manObj in mcWin32.GetInstances())
{
mboShutdown = manObj.InvokeMethod("Win32Shutdown",
mboShutdownParams, null);
}
} Я тут ещё нарыл один способ, но он не хочет работать... Может кому пригодится: System.Diagnostics.Process p=new System.Diagnostics.Process();
p.StartInfo.FileName="cmd.exe";
p.StartInfo.Arguments="/c shutdown -s";
p.Start();

Спасибо за многочисленные ответы ))))

_antony
05.01.2010, 00:40
http://msdn.microsoft.com/en-us/library/aa376868%28VS.85%29.aspx

MSDN ничего не дал
Такого не бывает :D :D :D ;)

RDL_Rider
06.01.2010, 03:16
http://msdn.microsoft.com/en-us/library/aa376868%28VS.85%29.aspx

MSDN ничего не дал
Такого не бывает :D :D :D ;)
+1
такого не бывает. Ну, за редким исключением вроде Ring-0 и т.д. и т.п. ;)

Gar|k
07.01.2010, 00:58
RDL_Rider функции и структуры ядра системы тоже не описаны в MSDN / ring 3

herfleisch
07.01.2010, 16:05
Да, забыл добавить... Доступа к MSDN.com у меня нет. Есть только установленные MSDN Express. А там, как известно, много чего нет...