السلام عليكم ممكن سؤال
اود غلق برنامجي عندما لا تتحرك الفأرة لمدة 05 دقائق - اي ام لم استخدم البرنامج خلال تلك الفترة- البرنامج ينغلق مباشرة دون امر مني هذا من باب الحماية
وعليكم السلام
دالة الAPI لويندوز GetLastInputInfo
كود :
function SecondsIdle: DWord;
var
liInfo: TLastInputInfo;
begin
liInfo.cbSize := SizeOf(TLastInputInfo) ;
GetLastInputInfo(liInfo) ;
Result := (GetTickCount - liInfo.dwTime) DIV 1000;
end;
procedure TForm1.Timer1Timer(Sender: TObject) ;
begin
Caption := Format('System IDLE last %d seconds', [SecondsIdle]) ;
end;
الحدث
https://docwiki.embarcadero.com/Librarie...ion.OnIdle
استغلال الwindows message
كود :
type
TForm1 = class(TForm)
FTimer: TTimer;
procedure FormCreate(Sender: TObject);
private
{ Déclarations privées }
procedure InitTimer;
procedure TimerTimer(Sender: TObject);
procedure Activite(var Msg : Tmsg; var Handled: Boolean);
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.InitTimer;
var b : boolean;
begin
b := FTimer.Enabled;
FTimer.Enabled := False;
FTimer.Enabled := b;
end;
procedure TForm1.FormCreate(Sender: TObject);
var Duration : integer;
begin
Duration := 1;
FTimer := TTimer.Create(self);
FTimer.OnTimer := TimerTimer;
FTimer.Enabled := True;
FTimer.Interval := Duration*60000; // minutes -> millisecondes
Application.OnMessage := Activite;
end;
procedure TForm1.TimerTimer(Sender: TObject);
begin
Close;
end;
procedure TForm1.Activite(var Msg : Tmsg; var Handled: Boolean);
begin
if ((Msg.message = WM_MOUSEMOVE) or (Msg.message = WM_KEYDOWN)) then
InitTimer;
Handled := false;
end;
(27-11-2021, 05:49 AM)SOFIANE09 كتب : [ -> ]السلام عليكم ممكن سؤال
اود غلق برنامجي عندما لا تتحرك الفأرة لمدة 05 دقائق - اي ام لم استخدم البرنامج خلال تلك الفترة- البرنامج ينغلق مباشرة دون امر مني هذا من باب الحماية
ألق نظرة من هنــــــــــــــــــا:
وما التوفيق إلا من عند الله.
مشكور اخي الكريم هذا ما كان ينقني و شكرا للاخر مبرمج حر على الاضافة