我正在尝试使用以下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文件)?
答案 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;