在Inno Setup [Registry]中使用函数返回值

问题描述 投票:0回答:1

是否有

ValueData
(或类似属性)的函数返回值。尝试了以下方法:

Root: HKLM; \
   Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; \
   ValueType: string; ValueName: "Hostname"; ValueData: GetComputerNameString(); \
   Flags: preservestringtype;

但这只是将字符串

GetComputerNameString()
添加到注册表项。

inno-setup pascalscript
1个回答
4
投票

使用脚本常量,语法为

{code:FunctionName}
。尽管脚本化常量函数必须采用字符串参数(即使实际实现不需要任何参数)。所以
GetComputerNameString
不兼容。您必须创建一个代理函数。

[Registry]
Root: HKLM; \
    Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; \
    ValueType: string; ValueName: "Hostname"; ValueData: {code:GetComputerName}; \
    Flags: preservestringtype;
[Code]

function GetComputerName(Param: string): string;
begin
  Result := GetComputerNameString;
end; 

有关更复杂的示例,请参阅 Inno Setup [Code] 部分变量到 [Registry]

© www.soinside.com 2019 - 2024. All rights reserved.