Power off (Убивает процессы)Delphi , ОС и Железо , Компьютер
Автор: DeMoN-777 { **** UBPFD *********** by delphibase.endimus.com **** >> Зависимости: Windows Автор: DeMoN-777, DeMoN-777@yandex.ru, Санкт-Петербург Copyright: @ Дата: 21 июня 2002 г. ***************************************************** } procedure Shutdown2; var hToken: THandle; tkp: _TOKEN_PRIVILEGES; DUMMY: PTokenPrivileges; DummyRL: Cardinal; begin DUMMY := nil; if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken ) then raise TShutdownEx.Create('OpenProcessToken failed'); if (not LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid)) then raise TShutdownEx.Create('LookupPrivilegeValue failed'); tkp.PrivilegeCount := 1; tkp.Privileges[0].Attributes := $0002; //SE_PRIVILEGE_ENABLED = $00002 AdjustTokenPrivileges(hToken, FALSE, tkp, 0, Dummy, DummyRL); if (GetLastError() <> ERROR_SUCCESS) then raise TShutdownEx.Create('AdjustTokenPrivileges failed'); if (not ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE, 0)) then raise TShutdownEx.Create('ExitWindowsEx failed'); end; Это фрагмент кода на языке Delphi, который обеспечивает функцию отключения питания (shutdown) для систем Windows. Код был написан DeMoN-777 и впервые опубликован в июне 2002 года. Вот разбивка кода: Процедура Shutdown2 Процедура
Обработка ошибок Код включает в себя механизмы обработки ошибок, чтобы поймать любые ошибки, которые могут возникнуть при выполнении этих шагов. Если возникает ошибка, она поднимает исключение Альтернативное решение Хотя этот код функционирует, есть альтернативные способы достижения функции отключения питания в Delphi:
Предложения по улучшению кода Вот некоторые предложения по улучшению кода:
В целом, это функциональный фрагмент кода, который демонстрирует, как shut down Windows-систему с помощью Delphi. Однако он может требовать модификаций и улучшений, чтобы соответствовать современным стандартам программирования и лучшим практикам. Представлен код процедуры Shutdown2 на языке Delphi, которая отключает компьютер и убивает все процессы под управлением Windows. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |