Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2011, 08:02   #1
pavellyba
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 84
Лампочка Как выключить/перезагрузить компьютер в Windows 7?

Как выключить/перезагрузить компьютер в Windows 7?
pavellyba вне форума Ответить с цитированием
Старый 14.08.2011, 09:41   #2
A-IX-2
Форумчанин
 
Аватар для A-IX-2
 
Регистрация: 08.10.2010
Сообщений: 101
По умолчанию

Пуск-Завершение работы/Перезагрузка
ЗЫ Какой вопрос - такой ответ)
"Думаешь, будет трудно? Конечно, будет! Но, только закаляя дух, людьми становятся люди!"
A-IX-2 вне форума Ответить с цитированием
Старый 14.08.2011, 09:51   #3
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Код:
function MyExitWindows(RebootParam: Longword): Boolean;
var  
  TTokenHd: THandle;  
  TTokenPvg: TTokenPrivileges;  
  cbtpPrevious: DWORD;
  rTTokenPvg: TTokenPrivileges;
  pcbtpPreviousRequired: DWORD;  
  tpResult: Boolean;  
const  
  SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';  
begin  
  if Win32Platform = VER_PLATFORM_WIN32_NT then  
  begin  
    tpResult := OpenProcessToken(GetCurrentProcess(),  
      TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,  
      TTokenHd);  
    if tpResult then  
    begin  
      tpResult := LookupPrivilegeValue(nil,  
                                       SE_SHUTDOWN_NAME,  
                                       TTokenPvg.Privileges[0].Luid);  
      TTokenPvg.PrivilegeCount := 1;  
      TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;  
      cbtpPrevious := SizeOf(rTTokenPvg);  
      pcbtpPreviousRequired := 0;  
      if tpResult then  
        Windows.AdjustTokenPrivileges(TTokenHd,  
                                      False,  
                                      TTokenPvg,  
                                      cbtpPrevious, 
                                      rTTokenPvg, 
                                      pcbtpPreviousRequired); 
    end; 
  end; 
  Result := ExitWindowsEx(RebootParam, 0);
end;
Код:
MyExitWindows(EWX_REBOOT or EWX_FORCE); // Перезагрузка
MyExitWindows(EWX_shutdown or EWX_FORCE); // Выключение
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 14.08.2011, 21:19   #4
pavellyba
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 84
По умолчанию

dmitriegorovih, спасибо! То что надо!
pavellyba вне форума Ответить с цитированием
Старый 15.08.2011, 09:41   #5
М_Виктор
Пользователь
 
Регистрация: 18.09.2009
Сообщений: 49
По умолчанию

Цитата:
Сообщение от pavellyba Посмотреть сообщение
Как выключить/перезагрузить компьютер в Windows 7?
В список модулей своей формы добавьте модуль ShellAPI
Для какой-нибудь кнопочки на своей форме напишите

MyExitWindows(EWX_REBOOT or EWX_FORCE); {перезагрузка}

или

MyExitWindows(EWX_POWEROFF or EWX_FORCE); {выключить}

или

ShellExecute(handle, nil,'shutdown',' -s -t 10 -c "Выключение через 10 сек."','', SW_SHOWNORMAL);
М_Виктор вне форума Ответить с цитированием
Старый 17.09.2014, 18:45   #6
pavellyba
Пользователь
 
Регистрация: 01.12.2010
Сообщений: 84
По умолчанию

А как запустить режим гибернации?
pavellyba вне форума Ответить с цитированием
Старый 17.09.2014, 22:14   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от pavellyba Посмотреть сообщение
А как запустить режим гибернации?
SetSuspendState()
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как программно выключить компьютер Windows iukash Общие вопросы C/C++ 9 23.11.2011 09:07
Как можно выключить/перезагрузить компьютер, используя SendMessage. Vaigard Общие вопросы Delphi 5 10.01.2011 17:36
как выключить/перезагрузить компьютер motaro Паскаль, Turbo Pascal, PascalABC.NET 1 28.03.2008 02:01
Как перезагрузить компьютер? В Win'XP. Vladimir K. Win Api 5 18.02.2008 08:44
Как програмно перезагрузить компьютер? Bill Gates Win Api 1 04.01.2008 17:32