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 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти