Emotion Опубликовано 17 октября, 2004 Жалоба Поделиться Опубликовано 17 октября, 2004 Подскажите пожайлуста код программы для выключения компьютера. Только не общем виде, а на примере. Спасибо. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
dartman Опубликовано 17 октября, 2004 Жалоба Поделиться Опубликовано 17 октября, 2004 Если система - ХР, то есть встроенная команда: Использование: C:\WINDOWS\system32\shutdown.EXE [-i | -l | -s | -r | -a] [-f] [-m \\<компьютер>] [-t xx] [-c "комментарий"] [-d up:xx:yy] Без аргументов Вывод справки по использованию (как и -?) -i Отображение интерфейса, д.быть первым параметром -l Выход (не совместим с параметром -m) -s Завершение работы компьютера -r Перезагрузка компьютера -a Прекращение завершения работы системы -m \\<компьютер> Удаленный компьютер, на котором выполняется действие -t xx Таймаут завершения работы - xx сек. -c "comment" Комментарий (не более 127 знаков) -f Принудительное завершение приложений без предварительного предупреждения -d [u][p]:xx:yy Код причины завершения работы u - пользовательский код p - код запланированного завершения xx - основной код причины (1 - 255) yy - дополнительный код причины (1 - 65535) Пример : SHUTDOWN -s -m \\localhost -t 10 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
max_hl Опубликовано 17 октября, 2004 Жалоба Поделиться Опубликовано 17 октября, 2004 BOOL MySystemShutdown() { HANDLE hToken; TOKEN_PRIVILEGES tkp; // Get a token for this process. if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) return( FALSE ); // Get the LUID for the shutdown privilege. 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); if (GetLastError() != ERROR_SUCCESS) return FALSE; // Shut down the system and force all applications to close. if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0)) return FALSE; return TRUE; } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Rulchik Опубликовано 17 октября, 2004 Жалоба Поделиться Опубликовано 17 октября, 2004 Emotion Можно ещё так: dim OpSysSet, objSet OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate," & _ "(Shutdown)}//./root/cimv2").ExecQuery _ ("SELECT * FROM Win32_OperatingSystem" &_ " WHERE Primary=true")For Each obj In OpSysSet obj.Win32Shutdown(8)Next Сохрани это в файл с расширением VBS. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Emotion Опубликовано 18 октября, 2004 Автор Жалоба Поделиться Опубликовано 18 октября, 2004 А как это будет выглядеть в Delphi? Например при нажатии на Button1. P.S. Мне нужно, чтобы при событии(on timer) компонента Timer произошло выключение компьютера. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Сергей Плоткин Опубликовано 18 октября, 2004 Жалоба Поделиться Опубликовано 18 октября, 2004 (изменено) 2 Emotion //... uses ..., ShellApi, ...; //... procedure ShutdownButtonClick(Sender: TObject); begin ShellExecute(Handle, nil, 'C:\WINDOWS\system32\shutdown.EXE', '-s -f', nil, SW_HIDE); end; Изменено 18 октября, 2004 пользователем Сергей Плоткин Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ali Опубликовано 25 октября, 2004 Жалоба Поделиться Опубликовано 25 октября, 2004 ExitWindowsEx(EWX_SHUTDOWN,0); //good night Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.