Program kullanılmadığı takdirde programı kapat

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Program kullanılmadığı takdirde programı kapat

Mesaj gönderen delphist »

S.a. Değerli Arkadaşlar. Elimde belli bir adet lisansı olan paket yazılım var. Ama insanlar programı açıp hiç kullanmadıkları halde açık kalıyor ve belli bir kulanıcı adetinden sonra program kullanıcı sayısı aşıldı hatası alıyorum. Küçük bir yazılım yapıp firmadaki arkadaşlara kurup eğer örnek veriyorum 5 dakika prorgam kullanılmadıysa kapa gibi bir şey düşünüyorum. Mümkünmüdür değilmidir. Nasıl yapabilirim sizlerden bilgi almak istiyorum. İyi Çalışmalar
Erd_turkmen
Üye
Mesajlar: 38
Kayıt: 27 Ara 2006 03:13

Mesaj gönderen Erd_turkmen »

Arama yaparsanız Forumda bulabilirsiniz...

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; 

Kod: Tümünü seç

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;
Kolay Gelsin..
Kullanıcı avatarı
Opt2000
Üye
Mesajlar: 216
Kayıt: 09 Tem 2003 10:04

Mesaj gönderen Opt2000 »

Selam,

Ufak bir hatırlatma, @Erd_turkmen'in cevabı sadece Win2000 ve üstü sistemlerde çalışacaktır. Bütün sistemlerde çalışması için sanırım Hook koymak gerekecek. Forumda aratacak olursan bulabilirsin.

Kolay gelsin,
Bahadır Alkaç
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Bir hatırlatma da benden olsun. Bu kod sadece ilgili program değil, tüm bilgisayarda herhangi bir mouse hareketi veya klavye girdisi gibi bir işlem yapılıp yapılmadığını kontrol eder.
Resim
Resim ....Resim
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

soyle birsey de yapilabilir.

forma bir adet timer ,label, memo ve application nesnesi birakin.
formun public alaninda SonIslem:Cardinal; degiskenini tanimlayin.

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Interval := 10000;
end;

Kod: Tümünü seç

procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
if (msg.message <> 280) and (msg.message<>$0113) then //$0113 = WM_TIMER
begin
 SonIslem :=GetTickCount;
 Caption := intToStr(SonIslem);
 memo1.Lines.Add(inttostr(msg.message));
end

end;

Kod: Tümünü seç

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if GetTickCount - sonislem > 100 then label1.Caption :='hareket yok';
end;
programa gelen hicbir mesaj olmazsa (bu ornekte 2 mesaj haric) labelda hareket yok yazacaktir.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Cevapla