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

 

 

Code:

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

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

 

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

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

Copyright:   @

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

 

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;

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

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

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

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


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