Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   C# выключение компа (https://forum.antichat.xyz/showthread.php?t=60060)

brasco2k 27.01.2008 15:09

C# выключение компа
 
Подскажите плз какой командой вырубить комп в 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

nerezus 27.01.2008 15:23

http://www.google.com/search?q=rundll+shutdown

Forcer 27.01.2008 15:44

В Си есть функция 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

Цитата:

Сообщение от sandalwood
в тему http://bugtraq.ru/library/internals/shut.html

Я про C# спрашивал

Jes 27.01.2008 22:39

зххх ...
Ну вот тебе на 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

Цитата:

Сообщение от brasco2k
Я про C# спрашивал

да хоть и на ассемблере, какая разница. Там же апи

nerezus 27.01.2008 23:27

Цитата:

Там же апи
Вот именно использование апи в шарпе - путь через жопу. Ну тут можно и с помощью них, т.к. задача такая.


Время: 16:02