10-08-2021, Saat: 22:47
Selam programimda güvenlik için belli bir zaman işlem yapılmadığında açık formların hide olup login formun show olmasını istiyorum. Nasıl bir mantık yurutmeliyim. Zaman asimini nasıl kontrol edebilirim
|
Zaman aşımı kontrolü
|
|
10-08-2021, Saat: 22:47
Selam programimda güvenlik için belli bir zaman işlem yapılmadığında açık formların hide olup login formun show olmasını istiyorum. Nasıl bir mantık yurutmeliyim. Zaman asimini nasıl kontrol edebilirim
11-08-2021, Saat: 09:26
Merhaba,
Sürekli aktif olan bir formunuzun üzerine örneğin giriş formu yada kullanıyorsanız bir datamodul üzerine 1 adet Timer ve "Application Events" yerleştirin ve Application Events in OnMessage Eventine ağagıdaki kodu yazın. if (Msg.Message = WM_LBUTTONDOWN) or (Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_KEYDOWN) then TimeOut := 0; Yukarıdaki kod eğer uygulama üzerinde bir mouse tıklaması veya tuş basımı olması durumunda TimeOut değişkenimizi sıfırlıyor. aksi durumda Timerın eventine yazdığımız kod ile TimeOut değeri 1 artıyor. Form yada datamodulde aşağıdaki tanımlamayı yapın const MaxTimeOutValue = 900; //900=15Dk 1200=20Dk var TimeOut : Integer=1; Timer'ın OnTimer eventine aşağıdaki tanımlamayı yapın. Inc(TimeOut);
if TimeOut >= MaxTimeOutValue - 120 then
begin
if not Assigned(SeClos) then // Ekranda çıkış için bildirim gösterecek olan formumuz.
SeClos:=TSeClos.Create(Application);
SeClos.tm.Text := TimeToStr(StrToTime(SeClos.tm.Text) - StrToTime('00:00:01')); // Edit içerisinde kapanış için geri sayımı gösteriyoruz.
SetForegroundWindow(SeClos.Handle);
SeClos.Show;
end;
if TimeOut >= MaxTimeOutValue then
begin
LogKaydi('Uzun Süre İşlem Yapmadığı için Oturum Kapatıldı!');
Application.Terminate;
end;
SeClos formumuz ekranda geri sayımı gösteren formumuz. Bu form üzerindeki tamam butonu kullanılırsa süre sıfırlanır tekrar işlem yapılmadığı sürece sayaç artmaya başlar. Ben burada uygulamanın tamamı ile kapanmasını tercih ettim sizde kapanması yerine açık formları gizlemeyi tercih edebilirsiniz. Bunun için bir Stringlist içinde her açılan formun bilgisini ekler kapatıldığında listeden çıkartırsınız. Eğer sayacımız max değerine ulaşırsa bu listedeki formları döngü ile Hide yapar giriş formunu gösterirsiniz. kullanıcı şifresini girdiğinde bu liste dolumu kontrolü yapar eğer dolu ise sırası ile tekrar ekranda gösterebilirsiniz. Önemli : Hide yapmadan önce önceki kullanıcı bilgisinide tutmalısınız. Farklı bir kullanıcı bilgilerini girip açarsa görmemesi gereken ekranları görebilir. Listenin dolu olup olmaması ve yeni oturum açan kullanıcının aynı olup olmaması kontrol edilmeli! İyi Çalışmalar.
11-08-2021, Saat: 12:12
(11-08-2021, Saat: 09:26)ozcanm Adlı Kullanıcıdan Alıntı: Merhaba,hocam mükemmel açıklamışsınız. çok teşekkür ederim. |
|
« Önceki Konu | Sonraki Konu »
|
| Konu ile Alakalı Benzer Konular | |||||
| Konular | Yazar | Yorumlar | Okunma | Son Yorum | |
| ADOConnection bağlantı kontrolü hakkında | mxpain | 1 | 542 |
26-05-2025, Saat: 11:49 Son Yorum: mrmarman |
|
| idftp dosya kontrolü | ercanskose | 2 | 791 |
30-10-2024, Saat: 16:15 Son Yorum: ercanskose |
|
| joystic kontrolu | sadikacar60 | 2 | 1.052 |
13-08-2023, Saat: 20:34 Son Yorum: sadikacar60 |
|
| zaman aşımı | info@guzelceker.com | 4 | 1.562 |
25-11-2022, Saat: 08:32 Son Yorum: info@guzelceker.com |
|
| TUBITAK Zaman Damgası | ikurt07 | 11 | 4.946 |
28-01-2022, Saat: 10:56 Son Yorum: mkysoft |
|