当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《每个用户或每台机器安装的InnoSetup自定义对话框》经验,为你挑选了1个好方法。

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

我想创建一个自定义步骤,询问用户是否需要"按用户"或"每台机器"安装,以便允许非特权用户和管理员安装软件.

Inno Setup可以实现这一点吗?如果是,你可以提供跟踪的痕迹吗?

看一下这个截图

在此输入图像描述



1> Martin Prikr..:

在Inno Setup中没有简单的解决方案.

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

[Setup]
PrivilegesRequiredOverridesAllowed=commandline dialog

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

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

有关详细信息,请参阅仅在需要时使Inno Setup安装程序请求权限提升


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

[Setup]
PrivilegesRequired=none

如果你真的想让用户选择,安装到哪里(虽然我认为不需要管理员为他/她自己安装),你可以这样做而不是上面的none:

[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;

安装选项

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有