Inno setup 使用innosetup中的函数添加注册表项
如何在innosetup中使用函数中的值添加注册表项。我想定一个时间 注册表中IsServer的值作为InstallAsseServer的返回值Inno setup 使用innosetup中的函数添加注册表项,inno-setup,Inno Setup,如何在innosetup中使用函数中的值添加注册表项。我想定一个时间 注册表中IsServer的值作为InstallAsseServer的返回值 [Code] [Registry] Root: HKLM; Subkey: "Software\company\product\Settings"; ValueType: string; ValueName: "IsServer"; ValueData: {code:InstallAsServer} var Page: TInputOptionW
[Code]
[Registry]
Root: HKLM; Subkey: "Software\company\product\Settings"; ValueType: string; ValueName: "IsServer"; ValueData: {code:InstallAsServer}
var
Page: TInputOptionWizardPage;
IsServer: Boolean;
procedure InitializeWizard;
begin
Page := CreateInputOptionPage(wpWelcome,
'Install Type', 'Select Install Type',
'Please select Installation type; If Server click Server else Client',
True, False);
// Add items
Page.Add('Install as Server');
Page.Add('Install as Client');
// Set initial values (optional)
Page.Values[0] := True;
Page.Values[1] := False;
IsServer := Page.Values[0];
end;
function InstallAsServer(emppararm: string): string; //emppararm not used just for syntax
begin
if (IsServer=False) then
begin
result:= '0';
end
else
begin
result:= '1';
end
end;
但我始终将值设置为1,即使我在页面中选择了服务器或客户端,这是因为您仅在向导表单初始化时分配了
IsServer
变量的值。理想情况下,您需要从InstallAsServer
函数中读取实际值,这样您甚至可以删除IsServer
变量。您可以将代码简化为以下内容:
[Registry]
Root: HKLM; Subkey: "Software\company\product\Settings"; ValueType: string; ValueName: "IsServer"; ValueData: {code:InstallAsServer}
[Code]
var
Page: TInputOptionWizardPage;
procedure InitializeWizard;
begin
Page := CreateInputOptionPage(wpWelcome, 'Install Type', 'Select Install Type',
'Please select Installation type; If Server click Server else Client', True,
False);
// add items
Page.Add('Install as Server');
Page.Add('Install as Client');
// set initial values (optional)
Page.Values[0] := True;
Page.Values[1] := False;
end;
function InstallAsServer(Value: string): string;
begin
// read the actual value directly from the Page
if not Page.Values[0] then
Result := '0'
else
Result := '1';
end;
非常感谢,它成功了。。(回答时关闭)顺便问一句,我可以再问一个问题吗?如何删除许可协议页?明白了。如果我删除了许可证文件,页面将不会显示