ShellExecute(Handle_WIndow, Operasi, Nama_File, Parameter, Direktori, Show_Command);
Perintah ini dapat menjalankan file apa saja yang sudah terasosiasi dengan program yang dapat membukanya, misalnya *.htm dapat dibuka menggunakan Internet Explorer/Mozilla, *.txt oleh Notepad, juga *.exe,*.com dan *.bat dapat langsung dijalankan.
Terjadi permasalahan pada saat program yang kita buat menggunakan ShellExecute dan perintah tersebut digunakan untuk menjalankan dirinya sendiri. Sehingga program tersebut akan terus menerus menjalankan dirinya sendiri, sampai akhirnya komputer tersebut kehabisan alokasi memori atau Hang.
Contoh pemrograman yang salah tersebut adalah:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellApi;
type
TForm1 = class(TForm)
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
var defdir:string;
begin
getdir(0,defdir);
ShellExecute(0,'open',pchar(defdir+'\Project1.exe'),'','',SW_NORMAL);
end;
end.
Program tersebut pada saat dijalankan akan menjalankan dirinya sendiri terus menerus.
Tidak ada komentar:
Posting Komentar