innosetup区分正常状态和静默安装状态(通过传递的参数)

时间:2022-03-30 17:33:59

命令行运行程序,如:

myprogram.exe  /abc  /bcd

如果我们想获取其中的参数,“/abc”、“/bcd”

1. 直接使用innosetup自带的方法, GetCmdTail()

将所有参数作为一个字符串返回,安装和卸载都适用

注意:如果打算使用此方法,建议先看一下它返回字符串的格式,如上例子,

返回的可不仅仅是:/abc  /bcd

2.使用innosetup自带的ParamCount() 和ParamStr()

2.1. ParamCount(), 获取参数的个数

2.2. ParamStr(), 根据参数下标,返回一个参数

例子: test.exe  /name abc /age 18

 {根据参数名,返回参数值}
function GetMyParam(PName:String):String;
var
CmdLine : String;
CmdLineLen : Integer;//参数的个数
i : Integer;
begin
CmdLineLen:=ParamCount();
for i:= to CmdLineLen do
begin
CmdLine:=ParamStr(i);
if CmdLine= PName then
begin
CmdLine:=ParamStr(i+);
Result := CmdLine;
Exit;
end;
end; end;

GetMyParam('name') 结果是:abc

总结:因为innosetup进行静默安装,需要在程序后面传参数,所以可以通过获取参数来判断是否进行静默安装

innosetup静默安装的参数请参考:http://www.cnblogs.com/tommy-huang/p/4580424.html