是否有
ValueData
(或类似属性)的函数返回值。尝试了以下方法:
Root: HKLM; \
Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; \
ValueType: string; ValueName: "Hostname"; ValueData: GetComputerNameString(); \
Flags: preservestringtype;
但这只是将字符串
GetComputerNameString()
添加到注册表项。
使用脚本常量,语法为
{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]。