{*********************************************************}
{ }
{ 使用ShellExecute带参数调用外部Exe文件 }
{ }
{ 版权所有 (c) 2005,2008 江智勇 }
{ E_Mail:jzymail2008@163.com }
{ Msn:jiangzhiyong2008@msn.com }
{ QQ:89461298 }
{ }
{********************************************************}
假如先编译一个Exe文件,在工程里面写下如下代码:
工程一、program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
var
Str:string;
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Str:=ParamStr(1); //在运行时去读是否有带参数值是:‘jiang’,如果没有则结束自己。
if Str<>'jiang' then
begin
Application.Terminate;
Exit;
end;
Application.Run;
end.
工程二的调用:program Project2;
procedure TForm1.Button1Click(Sender: TObject);
var
sFileName,sParam,sFilePath: string;
begin
sFileName:=ExtractFilePath(Application.ExeName)+'Project1.exe';
sFilePath:='ExtractFilePath(Application.ExeName)';
sParam:='jiang';
ShellExecute(0, 'Open', PChar(sFileName), PChar(sParam), PChar(sFilePath), SW_SHOW);
end;
工程一只能通过工程来调用才可以打开,如果单独打开是不行的。因为没有传参。当然传参过程中可以进行加密。