我使用以下内容,但{sysuserinfoorg}
的值为空字符串:
Data := 'UNINSTALL=' {sysuserinfoorg};
上述行返回' UNINSTALL'。
我也尝试ExpandConstant('{sysuserinfoorg}')
同样的结果。
我在DeinitializeUninstall
过程中使用它并通过HTTP post将Data
发送到我的服务器,后者将其写入日志文件。这一切都有效,但{sysuserinfoorg}
是空的。我所追求的是一些识别用户和/或其组织的信息。 Inno Setup doc表明{sysuserinfoorg}
包括注册表中有关机器注册人的数据。
答案 0 :(得分:0)
ExpandConstant
是正确的方法:
Data := 'UNINSTALL=' + ExpandConstant('{sysuserinfoorg}');
问题可能是实际上没有注册公司。
检查RegisteredOrganization
键中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
值的值。
在我的机器上,它是空的,因此{sysuserinfoorg}
也是空的。
仅仅{sysuserinfoorg}
在Pascal代码中是无意义的。
Data := 'UNINSTALL=' {sysuserinfoorg};
{...}
是comment in Pascal,您可以看到已启用语法高亮显示。
因此代码编译为:
Data := 'UNINSTALL=';
您还可以尝试通过阅读注册表来明确检索该值:
if RegQueryStringValue(
HKEY_LOCAL_MACHINE_64, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion',
'RegisteredOrganization', S) then
begin
Log('64-bit RegisteredOrganization = ' + S)
end
else
begin
Log('64-bit RegisteredOrganization is not defined')
end;
if RegQueryStringValue(
HKEY_LOCAL_MACHINE_32, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion',
'RegisteredOrganization', S) then
begin
Log('32-bit RegisteredOrganization = ' + S)
end
else
begin
Log('32-bit RegisteredOrganization is not defined')
end;
Log('sysuserinfoname = ' + ExpandConstant('{sysuserinfoname}'));