Показать сообщение отдельно
  #7  
Старый 06.01.2007, 20:50
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

//Попробуй это

procedure ShutdownComputer;
var
ph: THandle;
tp, prevst: TTokenPrivileges;
rl: DWORD;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, ph);
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid);
tp.PrivilegeCount := 1;
tp.Privileges[0].Attributes := 2;
AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0);
end;
Ответить с цитированием