|
Terkadang ketika kita membuat sebuah software,kita memerlukan aplikasi lain sebagai penunjang program kita. Penunjang ini bisa berarti kita memanggil aplikasi lain dari aplikasi Delphi yang kita buat. Contohnya misal kita ingin dari aplikasi Delphi yang kita buat akan memanggil aplikasi MS Excel dan aplikasi Delphi kita itu harus menunggu sampai aplikasi MS Excel tersebut berhenti prosesnya baru kemudian kita menjalankan prosedur selanjutnya. Bagaimanakah caranya? Mudah saja, berikut ini akan ditampilkan contoh code sederhana dimana aplikasi Delphi kita memanggil aplikasi MS Excel dan aplikasi Delphi kita akan menunggu sampai proses
pemanggilan MS Excel benar-benar sudah selesai dilakukan. Code di bawah ini dibuat dengan Borland Delphi 6.0, buatlah project baru dan letakkan sebuah object Button pada form utama. Code di bawah ini adalah code pada event OnClick pada Button tersebut.
procedure TForm1.Button1Click(Sender: TObject);
var
info_proses: TProcessInformation;
info_start: TStartupInfo;
Kode: longword;
begin
// inisialisasi awal
FillChar(info_proses, sizeof(TProcessInformation), 0);
FillChar(info_start, sizeof(TStartupInfo), 0);
info_start.cb := sizeof(TStartupInfo);
// menjalankan program
if CreateProcess('C:\Program Files\Microsoft Office\Office\excel.exe',
nil, nil,nil, false, NORMAL_PRIORITY_CLASS, nil,
nil,info_start, info_proses) then
begin
// proses telah dilakukan
// sekarang menanti sampai programnya selesai
WaitForSingleObject(info_proses.hProcess, INFINITE);
// Proses Telah berhenti
GetExitCodeProcess(info_proses.hProcess, Kode); //cari code
CloseHandle(info_proses.hThread);
CloseHandle(info_proses.hProcess);
Application.MessageBox(
PChar(Format('Program selesai! (Exit code=%d)', [ExitCode])),
'Info', MB_ICONINFORMATION);
//
// kalau mau buat tambahan procedure atau function
// disini tempatnya
//
end
else
begin
// ada kesalahan pada waktu proses
Application.MessageBox('Program tidak dapat di eksekusi',
'Error', MB_ICONEXCLAMATION);
end;
end;
Kalau kita lihat di atas ada beberapa method penting yang digunakan untuk misi kali ini. Setidaknya ada tiga method yaitu:
- CreateProcess, Windows API yang digunakan untuk menjalankan suatu proses (bisa aplikasi) pada Windows.
- WaitForSingleObject, Windows API yang digunakan untuk menunggu proses eksekusi program sampai suatu sinyal dikirim atau sampai suatu waktu tertentu
- CloseHandle, Windows API yang digunakan untuk menutup suatu handle dari suatu obyek yang terasosiasi (terhubung) dengan handle tersebut.
Bahan Bacaan
- Win32 Programmer's Reference
- Delphi Help
Demikianlah tulisan sederhana mengenai menanti berhentinya proses suatu aplikasi pada Borland Delphi, semoga berguna bagi Anda semua. Jika ada komentar atau saran silakan dikirimkan ke
v1an.tok@gmail.com. Untuk membaca tulisan menarik lainnya silakan menuju ke
www.sony-ak.com.
Terimakasih.
| Send
your comments or suggestions |
|
|
|