加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 如何在Inno Setup中使用Pascal变量?

发布时间:2020-12-13 22:40:08 所属栏目:Windows 来源:网络整理
导读:[Files]Source: "C:MyProg.exe"; DestDir: "{app}"; BeforeInstall: GetHome(); Flags: ignoreversion[INI]Filename: "{myVarFromPascal}.MyProgsettings.ini"; Section: "Settings"; Key: "sound"; String: "1"; Flags: createkeyifdoesntexist[Code]pro
[Files]
Source: "C:MyProg.exe"; DestDir: "{app}"; BeforeInstall: GetHome(); Flags: ignoreversion
[INI]
Filename: "{myVarFromPascal}.MyProgsettings.ini"; Section: "Settings"; Key: "sound"; String: "1"; Flags: createkeyifdoesntexist
[Code]
procedure GetHome();
     var
  myPascalVar: String;
begin
   RegQueryStringValue(HKEY_CURRENT_USER,'Volatile Environment','USERPROFILE',myPascalVar);
   MsgBox('Value is "' + myPascalVar + '"',mbInformation,MB_OK);
end;

这些是INNO Setup中的三个示例部分.我想在INI部分使用myPascalVar.我该怎么做?

解决方法

您需要将变量更改为全局范围,并为所谓的 scripted constant编写一个简单的getter函数:

[Files]
Source: "C:MyProg.exe"; DestDir: "{app}"; BeforeInstall: GetHome; Flags: ignoreversion

[INI]
Filename: "{code:GetMyVar}.MyProgsettings.ini"; Section: "Settings"; Key: "sound"; String: "1"; Flags: createkeyifdoesntexist

[Code]
var
  myPascalVar: string;

function GetMyVar(Value: string): string;
begin
  Result := myPascalVar;
end;

procedure GetHome;
begin
  RegQueryStringValue(HKEY_CURRENT_USER,myPascalVar);
  MsgBox('Value is "' + myPascalVar + '"',MB_OK);
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读