Membuat Auto Log Off Pada Delphi

Dalam proses pembuatan aplikasi, terkadang user menginginkan agar keamanan aplikasinya benar-benar diperhatikan, termasuk auto log off apabila tidak digunakan dalam selang waktu tertentu. Nah, pada Delphi, hal ini mudah dilakukan. Pada intinya, kita harus mengecek idle time aplikasi tersebut, kemudian apabila telah melewati jangka waktu yang telah ditentukan, aplikasi akan menutup seluruh form yang terbuka, termasuk juga mematikan koneksi database.

Yang Anda perlukan hanyalah sebuah komponen Timer dan beberapa baris kode.
Mari kita namakan Timer ini sebagai TimerAutoSignOut dan letakkan di form utama, sebut saja frmMain.
Pertama, kita akan buat global function seperti di bawah ini.

function SecondsIdle: DWord;
var
   liInfo: TLastInputInfo;
begin
   liInfo.cbSize := SizeOf(TLastInputInfo) ;
   GetLastInputInfo(liInfo) ;
   Result := (GetTickCount - liInfo.dwTime) DIV 1000;
end;

Function SecondsIdle akan mengembalikan nilai berapa lama aplikasi telah idle (dalam satuan detik). Hasil dari SecondsIdle ini akan kita evaluasi dengan treshold atau nilai yang telah kita tentukan sebelumnya. Evaluasi akan dipicu oleh Timer yang telah kita buat sebelumnya. Dalam contoh di bawah akan kita set bahwa aplikasi akan menutup jika idle 30 menit (1800 detik).

procedure TfrmMain.TimerAutoSignOutTimer(Sender: TObject);
var i : integer;
begin
  // auto shutdown jika idle selama 10 detik
  if SecondsIdle >= 1800 then
  begin
    for i := 0 to Screen.FormCount-1 do
    begin
      if Screen.Forms[i] <> self then
      begin
        Screen.Forms[i].Close;
      end;
    end;
  end;
end;

Diambil dari berbagai sumber, salah satunya Delphipages.

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

Silakan selesaikan soal berikut * Time limit is exhausted. Please reload the CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.