Check if Hibernation or Suspend is allowed
function HibernateAllowed: 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;
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;
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.