//********************************************************************** // Check if hibernation is allowed //********************************************************************* functionHibernateAllowed: Boolean; type
TIsPwrHibernateAllowed = function
: Boolean; stdcall
; var
hPowrprof: HMODULE; IsPwrHibernateAllowed: TIsPwrHibernateAllowed; begin
Result := False; if
IsNT4Or95 then
Exit; hPowrprof := LoadLibrary('powrprof.dll'); if
hPowrprof <> 0 then
begin
try
@IsPwrHibernateAllowed := GetProcAddress(hPowrprof, 'IsPwrHibernateAllowed'); if
@IsPwrHibernateAllowed <> nil
then
begin
Result := IsPwrHibernateAllowed; end
; finally
FreeLibrary(hPowrprof); end
; end
; end
; //********************************************************************** // Check if suspend is allowed //********************************************************************** function
SuspendAllowed: Boolean; type
TIsPwrSuspendAllowed = function
: Boolean; stdcall
; var
hPowrprof: HMODULE; IsPwrSuspendAllowed: TIsPwrSuspendAllowed; begin
Result := False; hPowrprof := LoadLibrary('powrprof.dll'); if
hPowrprof <> 0 then
begin
try
@IsPwrSuspendAllowed := GetProcAddress(hPowrprof, 'IsPwrSuspendAllowed'); if
@IsPwrSuspendAllowed <> nil
then
begin
Result := IsPwrSuspendAllowed; end
; finally
FreeLibrary(hPowrprof); end
; end
; end
;