Главная страницаОбратная связьКарта сайта

Как выключить Win2000

Известно, что с помощью стандартных функций Windows 2000 не вырубишь. Сегодня мы напишем прогу на WinApi, выключающую W2k, и занимающую всего 10 Кб! Создай обычный текстовый документ, открой его любым редактором, и пиши туда такую хрень:


program reboot;

uses
  Windows, messages;

procedure RebootSystem;
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
      else
        writeln("Ошибка")
    else
      writeln("Ошибка ");
  end
  else
    writeln("Ошибка ");
  if not ExitWindowsEx(EWX_POWEROFF,1) then
    writeln("Ошибка");
end;

begin
  RebootSystem;
end.

Сохрани этот файл под именем Reboot.dpr, открой из Delphi, и компилируй!


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


Если Вас заинтересовала или понравилась информация по разработке на Delph - "Как выключить Win2000", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2024 Дискета.info