Подписаться на RSS рассылку
Главная » Статьи по Delphi » Операционная система » Перезагрузить или выключить компьютер

Перезагрузить или выключить компьютер

Автор:

Tweet
uses
  Windows, messages;
...
procedure RebootSystem(Flags: UINT);
var
  handle_: THandle;
  n: DWORD;
  luid: TLargeInteger;
  priv: TOKEN_PRIVILEGES;
  ver: TOSVERSIONINFO;
begin
  ver.dwOSVersionInfoSize := Sizeof(ver);
  GetVersionEx(ver);
  if ver.dwPlatformId=VER_PLATFORM_WIN32_NT then
  begin
    if OpenProcessToken(GetCurrentProcess,
       TOKEN_ADJUST_PRIVILEGES, handle_) then
      if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', luid) then
      begin
        priv.PrivilegeCount := 1;
        priv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
        priv.Privileges[0].Luid := luid;
        AdjustTokenPrivileges(handle_, false, priv, 0, nil, n);
      end
  end;
  if not ExitWindowsEx(Flags,1) then writeln('Ошибка');
 
end;


Пример использования:
RebootSystem(EWX_REBOOT); // для перезагрузки
RebootSystem(EWX_POWEROFF); // для выключения


Просмотров: 6834

Обсудить на форуме


Имя *:
Email:


Код *:

Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.

Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам.

Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.