Kullanılmadığı zamanda programı nasıl kapatabilirim..
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Kullanılmadığı zamanda programı nasıl kapatabilirim..
S.a.
Çalıştığım yerde yaklaşık 30 terminalde çalışan programım var, bazan kullancı arkadaşlar bilgisayarının başında olmayıp dışarıya çıkıyor, bu esnada bilgisayarı açık aynı zamanda programda açık kalabiliyor, bu durumda ben programın kendi kendini kapatmasını sağlamak istiyorum,
bilgisayar açık kalmaya devam etsin ama çalışan program kapansın istiyorum, timer ile bu iş yapmaya çalıştım ama beceremedim daha kolay bir yöntemi varmıdır.
Mesele program üzerinde 5 dk işlem yapılmamış ise kapansın olay bu.
Yardımcı olacak arkadaşlarıma şimdiden teşekkür ederim.
Allah razı olsun ...
Saygılar.
Çalıştığım yerde yaklaşık 30 terminalde çalışan programım var, bazan kullancı arkadaşlar bilgisayarının başında olmayıp dışarıya çıkıyor, bu esnada bilgisayarı açık aynı zamanda programda açık kalabiliyor, bu durumda ben programın kendi kendini kapatmasını sağlamak istiyorum,
bilgisayar açık kalmaya devam etsin ama çalışan program kapansın istiyorum, timer ile bu iş yapmaya çalıştım ama beceremedim daha kolay bir yöntemi varmıdır.
Mesele program üzerinde 5 dk işlem yapılmamış ise kapansın olay bu.
Yardımcı olacak arkadaşlarıma şimdiden teşekkür ederim.
Allah razı olsun ...
Saygılar.
Ben Toprağın Sinesinde İnsan Denilen Bir Canım
Hem Düşünür, Hem Severim Budur Taştan Faklı Yanım.
Her maddenin zevlesini bedenimde taşıyorsam.
Ben ne bir taş ne bir ağaç, insanlığımla insanım.
Hem Düşünür, Hem Severim Budur Taştan Faklı Yanım.
Her maddenin zevlesini bedenimde taşıyorsam.
Ben ne bir taş ne bir ağaç, insanlığımla insanım.
Aklıma gelen en kolay yol programa bir timer koyup intervalini (5 dk. için) 300 000 yapman. Bu arada onmousmove ve/veya onkeypress olaylarında timeri disable edip sonra yeniden enable etmen; bu şekilde her fare hareketinden yada her klavye vuruşundan sonra timer yeniden saymaya başlayacak. 5 dk boyunca hiç bir olay olmazsa timer 300 000'e ulaşacağı içinde ontimer olayında programı kapatabililrsin.
Bunu denedim, bütün formlara komut satırı eklemem gerekiyor.
Başka yöndem olabilirmi mesela makinanın ekran koruyucusunun ne zaman devreye girdiğini kontrol edebiliyormuyuz.
o şekilde olur sanıyorum.
Başka yöndem olabilirmi mesela makinanın ekran koruyucusunun ne zaman devreye girdiğini kontrol edebiliyormuyuz.
o şekilde olur sanıyorum.
Ben Toprağın Sinesinde İnsan Denilen Bir Canım
Hem Düşünür, Hem Severim Budur Taştan Faklı Yanım.
Her maddenin zevlesini bedenimde taşıyorsam.
Ben ne bir taş ne bir ağaç, insanlığımla insanım.
Hem Düşünür, Hem Severim Budur Taştan Faklı Yanım.
Her maddenin zevlesini bedenimde taşıyorsam.
Ben ne bir taş ne bir ağaç, insanlığımla insanım.
Bunun için windows apilerinden GetLastInputInfo fonksiyonu var. Formunuza koyacağınız bir Timer ile bu fonksiyonu çağırarak karşılaştırma yapabilirsiniz.
Kolay gelsin.
Kod: Tümünü seç
Unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
Type
TForm1 = Class(TForm)
Timer1: TTimer;
Procedure Timer1Timer(Sender: TObject);
Private
{ Private declarations }
Public
{ Public declarations }
End;
Var
Form1: TForm1;
Implementation
{$R *.dfm}
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('Kullanıcı etkileşimsizlik süresi %d saniye - (System IDLE last second)', [SecondsIdle]);
If SecondsIdle >= 5 Then // Denemek icin 5 saniye verelim
SendMessage(Handle, WM_CLOSE, 0, 0);
End;
End.
Z.D. teşekkürler.
Bu olaya hiç ihtiyacım olmadı ama biraz vakit bulunca projeme bunu ekleyeceğim. Bazen kullanıcı burakıp gidiyor ve pc'de öyle açık kalıyo. Tabi başkası da gelip kullanabilir. Biz de o kadar kullanıcı yetkileri diye uğraşıyoruz. Bu olayı da kullanmak gerekiyordu ama acileyeti olmadığı için araştırmadım ve üzerinde durmadım. Bunu bir yere not ediyorum kullanacağım.
Paylaşımın için teşekkürler....
Bu olaya hiç ihtiyacım olmadı ama biraz vakit bulunca projeme bunu ekleyeceğim. Bazen kullanıcı burakıp gidiyor ve pc'de öyle açık kalıyo. Tabi başkası da gelip kullanabilir. Biz de o kadar kullanıcı yetkileri diye uğraşıyoruz. Bu olayı da kullanmak gerekiyordu ama acileyeti olmadığı için araştırmadım ve üzerinde durmadım. Bunu bir yere not ediyorum kullanacağım.
Paylaşımın için teşekkürler....
Evet malesef user32.dll bu fonksiyon Windows2000 ile beraber eklendi. Win95- 98 gibi sistemlerde desteklenmiyor. Linktede
http://msdn.microsoft.com/library/defau ... utinfo.asp
bu belirtiliyor zaten.
http://msdn.microsoft.com/library/defau ... utinfo.asp
bu belirtiliyor zaten.