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 :
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.
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 :
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 Berjalan3. Untuk Mengetahui Program sudah berjalan atau belum, kita perlu menggunakan fungsi tersebut dalam event onshow milik form dengan listing code seperti berikut
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;
if cek_aplikasi(ExtractFileName(Application.ExeName)) > 1 then beginSelesai. Selamat Mencoba. anda dapat mendownload contoh source codenya disini.
MessageDlg('Aplikasi sudah berjalan!', mtError, [mbOK], 0);
Application.Terminate;
end;
Tidak ada komentar:
Posting Komentar