使用Inno Setup将Serial写入文件

时间:2014-09-16 13:54:43

标签: windows installer installation inno-setup

我正在尝试使用以下Inno设置代码:

[Setup]
UserInfoPage=yes

[Code]
function CheckSerial(Serial: String): Boolean;
begin
  Result := true;
  SaveStringToFile('c:\Registration.txt', Serial, False);
end;

UserInfoPage知道文件路径时,代码非常简单。但是,当我需要在我的应用程序旁边写这个文件时,它变得异常复杂。既不:

WizardDirValue();

,也不

ExpandConstant('{app}');

做好工作。第一个是空的,太早叫,第二个甚至不运行,我得到:

  

内部错误:尝试扩展" app"不变   在它被初始化之前。

如何将Serial值存储到需要驻留在应用程序旁边的文件(.exe文件)?

1 个答案:

答案 0 :(得分:3)

您可以展开{userinfoserial}常量,以获取用户在选择应用程序目录后触发的某些事件中在信息页面中输入的序列号,例如:

[Setup]
AppName=My Program
AppVersion=1.5
UserInfoPage=yes
DefaultDirName={pf}\My Program

[Code]
function CheckSerial(Serial: String): Boolean;
begin
  Result := True;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall then
  begin
    SaveStringToFile(ExpandConstant('{app}\Serial.txt'),
      ExpandConstant('{userinfoserial}'), False);
  end;
end;