Programın Idle süresi nasıl bulunur (Çözüldü)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Programın Idle süresi nasıl bulunur (Çözüldü)

Mesaj gönderen adelphiforumz »

S.A.

Bir projeyi çalıştırdıktan sonra eğer 5 dk. boyunca hiç bir işlem yapılmamışsa
programı tekrar şifre giriş ekranına yönlendirmek istiyorum
fakat bunu her formun üzerine gidip mouse hareketlerini yada bir tuşa basıldımı diye kontrol etmeden yapabilmenin kolay bir yolu varmıdır.

Aşağıdaki gibi bir kod buldum fakat bu kod windowsun tamamı için beklenen süreyi algılıyor benim istediğim ise sadece program için bekleme süresini bulmak

Teşekürler

Kod: Tümünü seç

function SecondsIdle: DWord;
 var
    liInfo: TLastInputInfo;
 begin
    liInfo.cbSize := SizeOf(TLastInputInfo) ;
    GetLastInputInfo(liInfo) ;
    Result := (GetTickCount - liInfo.dwTime) DIV 1000;
 end;
En son adelphiforumz tarafından 12 Haz 2013 04:14 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: Programın Idle süresi nasıl bulunur

Mesaj gönderen ikra »

Bir adet Timer at ve MainForm'un onDeactivate eventinde enable et. süresini de 5dk olarak ayarla.
MainForm'un onActivate eventinde de Timer'i disable et.
kıdemsiz üye
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Programın Idle süresi nasıl bulunur

Mesaj gönderen SimaWB »

Denemedim ama MainForm'un onDeactivate'i main form dışında başka form kullanıyorsan da tetiklenecektir. Dolayısıyla kullanıcı mainform'da değil ama programı kullanmaya devam ederken sen süreyi başlatmış olursun ki bu da sorununu çözmez.
Bence Application.OnIdle'da timer kullanmak gerekli. Program Idle durumundan çıkarsa yani programa herhangi bir mesaj gelirse bu sefer Application.OnMessage tetiklenecektir. Bu 2 event'i kontrol ederek istediğini yapabilirsin.
There's no place like 127.0.0.1
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Programın Idle süresi nasıl bulunur

Mesaj gönderen thelvaci »

Belki bu makale işinize yarayabilir.

http://www.tugrulhelvaci.com/?p=115
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Programın Idle süresi nasıl bulunur

Mesaj gönderen adelphiforumz »

teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Cevapla