Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Допустимые периоды истечения времени

01.01.2007
{ 
 
Retrieves information about the time-out period associated
 
with the accessibility features.
 
The pvParam parameter must point to an ACCESSTIMEOUT
  structure that receives the information
.
 
Set the cbSize member of this structure and the
  uiParam parameter to
SizeOf(ACCESSTIMEOUT).
}
 
 
 
// ACCESSTIMEOUT structure
type
   
TAccessTimeOut = record
     cbSize
: UINT;
     dwFlags
: DWORD;
     iTimeOutMSec
: DWORD;
   
end;
 
 procedure
GetAccessTimeOut(var bTimeOut: Boolean; var bFeedBack: Boolean;
   
var iTimeOutTime: Integer);
   
// bTimeOut: the time-out period for accessibility features.
 
// bFeedBack: the operating system plays a descending
 
//            siren sound when the time-out period elapses and the
 
//            Accessibility features are turned off.
 
// iTimeOutTime: Timeout in ms
var
   
AccessTimeOut: TAccessTimeOut;
 
begin
   
ZeroMemory(@AccessTimeOut, SizeOf(TAccessTimeOut));
   
AccessTimeOut.cbSize := SizeOf(TAccessTimeOut);
 
   
SystemParametersInfo(SPI_GETACCESSTIMEOUT, SizeOf(AccessTimeOut), @AccessTimeOut, 0);
 
   bTimeOut
:= (AccessTimeOut.dwFlags and ATF_TIMEOUTON) = ATF_TIMEOUTON;
   bFeedBack
:= (AccessTimeOut.dwFlags and ATF_ONOFFFEEDBACK) = ATF_ONOFFFEEDBACK;
   iTimeOutTime
:= AccessTimeOut.iTimeOutMSec;
 
end;
 
 
// Test it:
 
procedure TForm1
.Button2Click(Sender: TObject);
 
var
   bTimeOut
, bFeedBack: Boolean;
   iTimeOutTime
: Integer;
 
begin
   
GetAccessTimeOut(bTimeOut, bFeedBack, iTimeOutTime);
   label1
.Caption := IntToStr(Ord(bTimeOut));
   Label2
.Caption := IntToStr(Ord(bFeedBack));
   Label3
.Caption := IntToStr(iTimeOutTime);
 
end;
 
 
{
 
Sets the time-out period associated with the accessibility features.
 
The pvParam parameter must point to anACCESSTIMEOUT structure that
  contains the
new parameters.
 
Set the cbSize member of this structure and the uiParam
  parameter to
sizeof(ACCESSTIMEOUT).
}
 
 
{
 
Setzt Informationen zu den ACCESSEDTIMEOUT-Eigenschaften.
 
"uiParam" erwartet die Gro?e der ACCESSEDTIMEOUT-Struktur,
 
die in "pvParam" ubergeben werden muss.
}
 
 procedure
SetAccessTimeOut(bTimeOut, bFeedBack: Boolean; iTimeOutTime: Integer);
   
// bTimeOut: If true, a time-out period has been set for accessibility features.
 
// bFeedBack: If true, the operating system plays a descending
 
//                    siren sound when the time-out period elapses and the
 
//                    accessibility features are turned off.
 
// iTimeOutTime: Timeout in ms
var
   
AccessTimeOut: TAccessTimeOut;
 
begin
   
ZeroMemory(@AccessTimeOut, SizeOf(TAccessTimeOut));
   
AccessTimeOut.cbSize := SizeOf(TAccessTimeOut);
 
   
case bTimeOut of
     
True: AccessTimeOut.dwFlags  := ATF_TIMEOUTON;
     
False: AccessTimeOut.dwFlags := 0;
   
end;
 
   
if bFeedBack then
     
AccessTimeOut.dwFlags := AccessTimeOut.dwFlags or ATF_ONOFFFEEDBACK;
 
   
AccessTimeOut.iTimeOutMSec := iTimeOutTime;
 
   
SystemParametersInfo(SPI_SETACCESSTIMEOUT, SizeOf(AccessTimeOut),
     
@AccessTimeOut, SPIF_UPDATEINIFILE or SPIF_SENDWININICHANGE);
 
end;
 
 
// Test it:
procedure TForm1
.Button1Click(Sender: TObject);
 
begin
   
SetAccessTimeOut(True, True, 600000); // 10 min. timeout
end;

https://delphiworld.narod.ru/

DelphiWorld 6.0