Содержание материала

 

Code:

{ **** UBPFD *********** ****

>> Power off (не убивает процессы)

 

Зависимости: Windows

Автор:       DeMoN-777, Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., Санкт-Петербург

Copyright:  

***************************************************** }

 

procedure ExitWinNT(AShutdown: Boolean);

var

hToken: THandle;

tkp: TTokenPrivileges;

ReturnLength, What: Cardinal;

begin

if AShutdown then

   What := EWX_SHUTDOWN or EWX_POWEROFF

else

   What := EWX_REBOOT;

if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or

   TOKEN_QUERY, hToken) then

begin

   LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid);

   tkp.PrivilegeCount := 1;

   tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

   if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then

     ExitWindowsEx(What, 0)

end

end;

Пример использования:

 

ExitWinNT(True);

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить