每个用户或每个计算机安装的Inno Setup自定义对话框

德伦达

我正在使用Inno Setup(http://www.jrsoftware.org/isinfo.php)为JavaFX应用程序创建本机包。

我想创建一个自定义步骤,在该步骤中询问用户是否要“按用户”或“按计算机”安装,以允许无特权的用户和管理员安装软件。

使用Inno Setup可以做到吗?如果可以,您能否提供跟踪信息?

看一下这个截图

在此处输入图片说明

马丁·普里克里(Martin Prikryl)

创新设置6

Inno Setup 6内置了对非管理安装模式的支持

基本上,您可以简单地设置PrivilegesRequiredOverridesAllowed

[Setup]
PrivilegesRequiredOverridesAllowed=commandline dialog

在此处输入图片说明


创新设置5

在以前的Inno Setup版本中没有如此简单的解决方案。

最简单的方法是将PrivilegesRequired伪指令设置none(未记录的值):

[Setup]
PrivilegesRequired=none

这将允许安装程序由非特权用户运行。它只会为他/她安装。

对于特权用户,Windows通常会检测到该可执行文件是安装程序,并且会弹出UAC提示符。之后它将为所有用户安装。

有关详细信息,请仅在需要时才进行“使Inno Setup安装程序请求权限提升”


要使安装程序安装到“应用程序数据”中,当由非特权用户运行时,您可以执行以下操作:

[Setup]
DefaultDirName={code:GetDefaultDirName}

[Code]

function GetDefaultDirName(Param: string): string;
begin
  if IsAdminLoggedOn then
  begin
    Result := ExpandConstant('{pf}\My Program');
  end
    else
  begin
    Result := ExpandConstant('{userappdata}\My Program');
  end;
end;

如果您确实希望用户选择安装位置(尽管我认为没有必要让管理员自己安装),则可以执行以下操作DefaultDirName

[Code]

var
  OptionPage: TInputOptionWizardPage;

procedure InitializeWizard();
begin
  OptionPage :=
    CreateInputOptionPage(
      wpWelcome,
      'Choose installation options', 'Who should this application be installed for?',
      'Please select whether you wish to make this software available for all users ' +
        'or just yourself.',
      True, False);

  OptionPage.Add('&Anyone who uses this computer');
  OptionPage.Add('&Only for me');

  if IsAdminLoggedOn then
  begin
    OptionPage.Values[0] := True;
  end
    else
  begin
    OptionPage.Values[1] := True;
    OptionPage.CheckListBox.ItemEnabled[0] := False;
  end;
end;

function NextButtonClick(CurPageID: Integer): Boolean;
begin
  if CurPageID = OptionPage.ID then
  begin
    if OptionPage.Values[1] then
    begin
      { override the default installation to program files ({pf}) }
      WizardForm.DirEdit.Text := ExpandConstant('{userappdata}\My Program')
    end
      else
    begin
      WizardForm.DirEdit.Text := ExpandConstant('{pf}\My Program');
    end;
  end;
  Result := True;
end;

安装选项

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Inno Setup语言对话框自定义

来自分类Dev

如何自定义安装位置对话框的磁盘空间单位?

来自分类Dev

如何检查用户是否确认了自定义模式对话框

来自分类Dev

C#安装-使用安装对话框更改自定义文件夹位置

来自分类Dev

如何将自定义消息退出对话框添加到wix安装程序

来自分类Dev

Nsis安装程序可通过帖子部分或自定义对话框中的关闭按钮删除文件

来自分类Dev

显示带有Plaid Link的自定义用户名和密码模态对话框

来自分类Dev

显示带有Plaid Link的自定义用户名和密码模态对话框

来自分类Dev

Inno Setup - 创建自定义消息框(是/否)

来自分类Dev

使用VS2017安装项目创建安装程序时如何在对话框中添加自定义前提条件?

来自分类Dev

WXPYTHON自定义对话框

来自分类Dev

自定义对话框片段

来自分类Dev

自定义对话框太小

来自分类Dev

自定义进度对话框

来自分类Dev

自定义对话框错误

来自分类Dev

自定义引导对话框

来自分类Dev

自定义对话框的布局

来自分类Dev

如何在WiX安装程序中的自定义对话框上启用关闭按钮

来自分类Dev

Inno Setup检查计算机是否已加入域

来自分类Dev

使用Inno Setup更改计算机名称

来自分类Dev

Inno Setup:自定义类

来自分类Dev

Inno Setup:创建自定义表单

来自分类Dev

Inno Setup:自定义类

来自分类Dev

使用Python创建SPSS自定义对话框

来自分类Dev

Android自定义对话框样式

来自分类Dev

自定义对话框打开时强制关闭

来自分类Dev

jQuery UI自定义对话框按钮

来自分类Dev

如何从自定义对话框中删除标题?

来自分类Dev

如何自定义放置Jquery对话框