![]() |
![]() ![]() ![]() ![]() |
|
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 прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||