Просмотр полной версии : C# выключение компа
brasco2k
27.01.2008, 15:09
Подскажите плз какой командой вырубить комп в C# или класс
Delimiter
27.01.2008, 15:21
8)) это WInAPI а не внутренняя команда языка!
команды WINAPI подключаются на этапе линковки!
например
ExitWindowsEx(EWX_REBOOT | EWX_FORCE,0);
^ ^ ^
| | - не задавать вопросов
| -рестарт если выключить то EWX_SHUTDOWN
-суфикс WinApiшных команд
не думаю что в шарке намного изменится следующий код
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
// Get a token for this process.
if (OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST _PRIVILEGES | TOKEN_QUERY, &hToken))
{
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
// Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL, 0);
// Cannot test the return value of AdjustTokenPrivileges.
if (GetLastError() == ERROR_SUCCESS)
// Shut down the system and force all applications to close.
ExitWindowsEx(EWX_REBOOT | EWX_FORCE,0);
}
... так как от того что вы используете шарк вы не перестанете использовать user32.dll а 80% вышеуказанных функций линкуются из user32.lib
http://www.google.com/search?q=rundll+shutdown
В Си есть функция system() из библиотеки <stdlib.h> - выполнение системных команд. С помощью неё тоже можно выключить комп. Шарп не знаю, но думаю тоже что-нибудь подобное есть. Как некоторый кроссплатформенный вариант.
brasco2k
27.01.2008, 17:29
Syntax
Usage: shutdown [-i | -l | -s | -r | -a] [-f] [-m \\computername] [-t xx] [-c "comment"] [-d up:xx:yy]No args Display this message (same as -?)
-i Display GUI interface, must be the first option
-l Log off (cannot be used with -m option)
-s Shutdown the computer
-r Shutdown and restart the computer
-a Abort a system shutdown
-m \\computername Remote computer to shutdown/restart/abort
-t xx Set timeout for shutdown to xx seconds
-c "comment" Shutdown comment (maximum of 127 characters)
-f Forces running applications to close without warning
-d [u] [p]:xx:yy The reason code for the shutdown
u is the user code
p is a planned shutdown code
xx is the major reason code (positive integer less than 256)
yy is the minor reason code (positive integer less than 65536)
спс нашел если комунить нужно
sandalwood
27.01.2008, 17:38
в тему http://bugtraq.ru/library/internals/shut.html
brasco2k
27.01.2008, 21:30
в тему http://bugtraq.ru/library/internals/shut.html
Я про C# спрашивал
зххх ...
Ну вот тебе на C# ...
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/c shutdown -s";
p.Start();
sandalwood
27.01.2008, 22:50
Я про C# спрашивал
да хоть и на ассемблере, какая разница. Там же апи
Там же апи Вот именно использование апи в шарпе - путь через жопу. Ну тут можно и с помощью них, т.к. задача такая.
brasco2k
29.01.2008, 16:59
зххх ...
Ну вот тебе на C# ...
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/c shutdown -s";
p.Start();
ДЕЛО однозначно!
правда вырубается долго))
ну вобщем то что хотел
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot