Running external files using Delphi 7
Langsung saja, pembahasan kali ini adalah tutorial mengenai beberapa cara untuk me-run file external, seperti file executable (*.exe), file text (*.txt) menggunakan Delphi 7. Terdapat berbagai macam cara untuk me-run file external menggunakan Delphi, berikut ini saya akan paparkan sebagain saja. Cara yang pertama, yang paling sederhana, adalah menggunakan command winexec.
winexec (‘namafile.exe’);
Contoh dari penggunaan command ini untuk membuka notepad kosong, dengan menggunakan code :
winexec (‘notepad.exe’);
Ketika program dijalankan, maka program tersebut akan membuka notepad. Cukup sederhana, dan selesai
Cara kedua, yang ‘sedikit’ rumit
, adalah menggunakan bantuan dari API (Application Programming Interface) yang juga sudah tersedia di dalam delphi, yaitu menggunakan fungsi ShellExecute yang terdapat pada unit ShellAPI. Format penggunaannya adalah :
function ShellExecute (hWnd :HWND; Operation, FileName, Parameters,
Directory: PChar; ShowCmd: Integer): HINST; stdcall
dengan
- hWnd : Handle
- Operation : operasi yang akan dilakukan. Bisa diisi dengan ‘open’, ‘explore’, ‘print’. Namun, operasi yang sering digunakan adalah operasi ‘open’.
- FileName : file yang akan dibuka berikut nama foldernya.
- Parameter : tambahan parameter yang akan diberikan ke file. Bila tidak ada, diisikan nil.
- Directory : alamat default untuk aplikasi yang dibuka. Bila tidak ada, diisikan nil.
- ShowCmd : state/mode dari aplikasi yang akan dibuka. Ada beberapa macam mode :
- SW_SHOW
- SW_MINIMIZE
- SW_MAXIMIZE
- SW_HIDE
Untuk menggunakan fungsi ShellExecute, terlebih dahulu HARUS ditambahkan ‘ShellAPI‘ pada bagian USES. Contoh penggunaanya fungsi diatas adalah seperti ini :
- Membuka notepad :
ShellExecute(Handle, ‘open’, ‘c:\Windows\notepad.exe’,
nil, nil, SW_SHOWNORMAL)
- Membuka sembarang file txt dengan notepad :
ShellExecute(Handle,’open’, ‘c:\windows\notepad.exe’,
‘c:\SomeText.txt’, nil, SW_SHOWNORMAL);
- Membuka explorer dari suatu folder :
ShellExecute(Handle,’open’, ‘c:\Download’, nil, nil, SW_SHOWNORMAL) ;
Semoga bermanfaat
If you have any question, please fell free to ask

kenapa ya fungsi di atas tak coba pake D2010 di windows 7 ERROR !
apanya yg salah ya.
aku bikin program utk manggil program lain. dengan delphi 7 sukses ( pake nya fungsi winexec.) tapi winexec tak ngefek setelah aku jalankan dengan D2010
help me !!!
yes, dah bisa D2010 : ( meski kata dokumentasinya embarcadero ini kurang aman)
procedure MyProc(……..);
var
cmd : AnsiString; { <- kalau pake string gak ngefek }
begin
cmd := '’;
{cast dengan PChar tak boleh kalau pake D2010 }
WinExec(PAnsiChar(cmd), SW_SHOWNORMAL);
{dst …}
end;
begitulah.
@nindyo : wah,, saia malah blum pernah nyoba D2010.. hehehe.. terimakasih atas infonya..
mungkin memang masalah penggunaan AnsiString yang tidak sama dari Delphi 7 dengan D2010..