Kamis, 01 Mei 2014

Cek Apakah Aplikasi Sudah Berjalan

Dalam membangun aplikasi khususnya dengan Delphi kita akan banyak bermain di event semisal event on close, on click, on show dan semacamnya. dalam event-event tersebutlah kita meletakkan coding yang kita ketikan. oleh karenanya penguasaan penggunaan event menjadi salah satu kunci dalam menguasai Delphi.

Kali ini saya akan berbagi sedikit trik tentang cara mengetahui apakah program sudah dijalankan atau belum. Hal ini dapat kita manfaatkan untuk meminimalisir penggunaan memori karena jika program sudah dijalankan maka aksi yang akan dilakukan adalah memunculkan pesan dan menutup program yang kedua dijalankan. seperti gambar berikut ini :

Cek Apakah Aplikasi Sudah Berjalan di Delphi

Langkah-Langkahnya adalah sebagai berikut :

1. Tambahkan TlHelp32 dalam uses anda

2. Buat Sebuah Fungsi dengan source code seperti berikut. Fungsi inilah yang akan melakukan pengecekan
pada aplikasi yang kita jalankan.
// Cek Program Apakah Sudah Berjalan
function cek_aplikasi(const ExeName: String): Integer;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
FSnapshotHandle:= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize:= SizeOf(FProcessEntry32);
ContinueLoop:= Process32First(FSnapshotHandle, FProcessEntry32);
Result:= 0;
while Integer(ContinueLoop) <> 0 do begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeName))) then Inc(Result);
ContinueLoop:= Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
3. Untuk Mengetahui Program sudah berjalan atau belum, kita perlu menggunakan fungsi tersebut dalam event onshow milik form dengan listing code seperti berikut
if cek_aplikasi(ExtractFileName(Application.ExeName)) > 1 then begin
MessageDlg('Aplikasi sudah berjalan!', mtError, [mbOK], 0);
Application.Terminate;
end;
Selesai. Selamat Mencoba. anda dapat mendownload contoh source codenya disini.

Tidak ada komentar:

Posting Komentar