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