![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Синхронизация завершения работы WindowsDelphi , ОС и Железо , WindowsСинхронизация завершения работы Windows
Оформил: DeeCo { Diese Methode funktioniert nur auf Windows NT/2000/XP } { Works only on Windows NT/2000/XP systems } function TimedShutDown(Computer: string; Msg: string; Time: Word; Force: Boolean; Reboot: Boolean): Boolean; var rl: Cardinal; hToken: Cardinal; tkp: TOKEN_PRIVILEGES; begin //get user privileges to shutdown the machine, we are talking about win nt and 2k here if not OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then ShowMessage('Cannot open process token.') else begin if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid) then begin tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; tkp.PrivilegeCount := 1; AdjustTokenPrivileges(hToken, False, tkp, 0, nil, rl); if GetLastError <> ERROR_SUCCESS then ShowMessage('Error adjusting process privileges.'); end else ShowMessage('Cannot find privilege value.'); end; Result := InitiateSystemShutdown(PChar(Computer), PChar(Msg), Time, Force, Reboot) end; //Start shut down procedure TForm1.Button1Click(Sender: TObject); begin if not TimedShutDown('\\computername', 'you have to shutdown', 30, true, true) then ShowMessage('function failed...'); end; //Abort shut down procedure TForm1.Button2Click(Sender: TObject); begin AbortSystemShutdown('\\computername'); end; Программа Delphi, позволяющая удаленно отключать или перезапускать систему Windows NT, 2000 или XP. Программа использует функции Вот разбивка кода: Функция Эта функция принимает пять параметров:
Функция сначала пытается открыть токен процесса с необходимыми правами для отключения системы. Если это не удается, она отображает сообщение об ошибке и возвращает Если токен успешно открыт, функция ищет привилегию Затем функция вызывает Обработчик события Эта процедура вызывается при клике кнопки "Отключить". Она вызывает функцию Обработчик события Эта процедура вызывается при клике кнопки "Отменить отключение". Она вызывает функцию Замечания и ограничения
В целом, это полезная утилита для удаленного управления системами Windows. Однако, пожалуйста, учитывайте, что она работает только на старых версиях Windows и требует административных прав для функционирования. В статье описывается метод синхронизации завершения работы Windows, который позволяет программно инициировать перезагрузку или остановку компьютера с заданным временем ожидания. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |