Сегодня я вам покажу как ваш пк/ноут перевести в спящий режим программно в Delphi.
Для этого используем функцию:
Используем так, например при нажатии на Button:
Кому будет интерестно приведу пример таймера, который при конце отсчета переводит в спящий режим (например смотрите фильм и вы уже устали и можете случайно уснуть, ставите время фильма и запускаете таймер, если вы уснули ранее чем закончился фильм то ваш пк перейдет в спящий режим)
Для этого используем функцию:
Код:
procedure NTSleep;
var
hToken: THandle;
tkp: TTokenPrivileges;
ReturnLength: Cardinal;
begin
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, hToken) then
begin
LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1; // one privelege to set
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
SetSystemPowerState(true, true);
end;
end;
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
NTSleep;
end;