Главная | Регистрация | Вход
Вторник, 05.08.2025, 13:38
Приветствую Вас Гость | RSS
Навигация:
Категории:
Базы данных [9]
Графика и Игры [0]
Интернет и Сети [0]
Компоненты и Классы [0]
Мультимедиа [0]
ОС и Железо [0]
Программа и Интерфейс [0]
Технологии [0]
Файловая система [0]
Программирование на Delphi [23]
Обучающие статьи [26]
Небольшие уроки по Delphi
Синтаксис [0]
Рабочий стол [0]
qwerty [0]
Чат сайта:
Главная » Статьи » Обучающие статьи

Перезагрузить или выключить компьютер из своей программы
Code
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;

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

Code

RebootSystem(EWX_REBOOT); // для перезагрузки
RebootSystem(EWX_POWEROFF); // для выключения
Категория: Обучающие статьи | Добавил: NekitoS (15.05.2009)
Просмотров: 553 | Рейтинг: 4.0/2 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Контакты
ICQ:306182
Статистика
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright "Delphi Project Ltd" © 2025