8)) это WInAPI а не внутренняя команда языка! команды WINAPI подключаются на этапе линковки! например Code: ExitWindowsEx(EWX_REBOOT | EWX_FORCE,0); ^ ^ ^ | | - не задавать вопросов | -рестарт если выключить то EWX_SHUTDOWN -суфикс WinApiшных команд не думаю что в шарке намного изменится следующий код Code: 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
В Си есть функция system() из библиотеки <stdlib.h> - выполнение системных команд. С помощью неё тоже можно выключить комп. Шарп не знаю, но думаю тоже что-нибудь подобное есть. Как некоторый кроссплатформенный вариант.
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 [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) спс нашел если комунить нужно
зххх ... Ну вот тебе на C# ... Code: System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.Arguments = "/c shutdown -s"; p.Start();
Вот именно использование апи в шарпе - путь через жопу. Ну тут можно и с помощью них, т.к. задача такая.