Delphi World - Перевод системы в режим ожидания или спячки
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Перевод системы в режим ожидания или спячки

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  The SetSuspendState function suspends the system by shutting power down. 
  Depending on the Hibernate parameter, 
  the system either enters a suspend (sleep) state or hibernation. 

  Syntax: 
}

  function SetSuspendState(
    Hibernate: Boolean,
    ForceCritical: Boolean,
    DisableWakeEvent: Boolean);


 {  Parameters: 

   Hibernate: If this parameter is TRUE, the system hibernates. 
              If the parameter is FALSE, the system is suspended. 
   ForceCritical: If this parameter is TRUE, the system suspends operation immediately; 
                  if it is FALSE, the system broadcasts a PBT_APMQUERYSUSPEND event to 
                  each application to request permission to suspend operation. 
   DisableWakeEvent: If this parameter is TRUE, the system disables all wake events. 
                     If the parameter is FALSE, any system wake events remain enabled. 


  Windows NT/2000/XP: Included in Windows 2000 and later. 
  Windows 95/98/Me: Included in Windows 98 and later. 
}

 var
   _SetSuspendState: function (Hibernate, ForceCritical, DisableWakeEvent: BOOL): BOOL
   stdcall = nil;

   function LinkAPI(const module, functionname: string): Pointer; forward;

 function SetSuspendState(Hibernate, ForceCritical,
   DisableWakeEvent: Boolean): Boolean;
 begin
   if not Assigned(_SetSuspendState) then
     @_SetSuspendState := LinkAPI('POWRPROF.dll', 'SetSuspendState');
   if Assigned(_SetSuspendState) then
     Result := _SetSuspendState(Hibernate, ForceCritical,
       DisableWakeEvent)
   else
     Result := False;
 end;

 function LinkAPI(const module, functionname: string): Pointer;
 var
   hLib: HMODULE;
 begin
   hLib := GetModulehandle(PChar(module));
   if hLib = 0 then
     hLib := LoadLibrary(PChar(module));
   if hLib <> 0 then
     Result := getProcAddress(hLib, PChar(functionname))
   else
     Result := nil;
 end;

 // Example Call: 
// Beispielaufruf: 

procedure TForm1.Button1Click(Sender: TObject);
 begin
   SetSuspendState(True, False, False);
 end;
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования