我在C++Builder中用 ShellExecute(0, "Open", ExeName.c_str(),"abc",NULL,SW_SHOW); 然后在Delphi中用
end;procedure TMainForm.FormCreate(Sender: TObject);
var
hsList: THashedStringList;
I: Integer;
begin
hsList := THashedStringList.Create;
try
for I := 1 to ParamCount - 1 do
begin
hsList.Add(ParamStr(i));
end;
ShowMessage(hsList.Text);
finally
hsList.Free;
end;
end;
怎么接收不到参数abc,还有个问题,就是我要发送多个参数时是什么格式的!
end;procedure TMainForm.FormCreate(Sender: TObject);
var
hsList: THashedStringList;
I: Integer;
begin
hsList := THashedStringList.Create;
try
for I := 1 to ParamCount - 1 do
begin
hsList.Add(ParamStr(i));
end;
ShowMessage(hsList.Text);
finally
hsList.Free;
end;
end;
怎么接收不到参数abc,还有个问题,就是我要发送多个参数时是什么格式的!
直接运行application1.exe param1 param2看看能不能收到
AnsiString Params = " HostApp="+IntToStr(int(this->Handle))+" "+" AgentCode=8809 QueueID=44-1 END";
ShellExecute(0, "Open", ExeName.c_str(),Params.c_str(),NULL,SW_SHOW);
}可以正常接收参数了,为什么会少一个,当传一个参数时就收不到了,像上面的语句最后的END就收不到,END前面和QueuID=44-1是有空格的
不要减一
ParamCount - 1