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

Javafx 按用户或每台机器安装的Inno安装自定义对话框,javafx,installation,inno-setup,pascalscript,Javafx,Installation,Inno Setup,Pascalscript,我正在使用InnoSetup()为我的JavaFX应用程序创建本机包 我想创建一个自定义步骤,询问用户是否需要“每用户”或“每机器”安装,以便允许非特权用户和管理员安装软件 这在Inno设置中是可能的吗?如果是的话,你能提供跟踪信息吗 看看这个截图 Inno设置6 Inno Setup 6内置了对的支持 基本上,您可以简单地设置: [设置] PrivilegesRequiredOverridesAllowed=命令行对话框 Inno设置5 在以前版本的Inno安装程序中,没有这样简单的解决

我正在使用InnoSetup()为我的JavaFX应用程序创建本机包

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

这在Inno设置中是可能的吗?如果是的话,你能提供跟踪信息吗

看看这个截图

Inno设置6 Inno Setup 6内置了对的支持

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

[设置]
PrivilegesRequiredOverridesAllowed=命令行对话框


Inno设置5 在以前版本的Inno安装程序中,没有这样简单的解决方案

最简单的方法是设置为
none
(未记录的值):

[设置]
PrivilegesRequired=无
这将允许非特权用户运行安装程序。它将只为他/她安装

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

详情请参阅


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

[设置]
DefaultDirName={code:GetDefaultDirName}
[守则]
函数GetDefaultDirName(参数:string):string;
开始
如果我是德米兰戈登的话
开始
结果:=ExpandConstant(“{pf}\My Program”);
结束
其他的
开始
结果:=ExpandConstant(“{userappdata}\My Program”);
结束;
结束;

如果您确实希望用户选择安装位置(尽管我认为没有必要让管理员自己安装),您可以这样做,而不是使用上面的
DefaultDirName

[代码]
变量
选项页面:t输入选项向导页面;
过程初始化Wizard();
开始
选项页:=
CreateInputOptionPage(
欢迎各位,
“选择安装选项”、“应为谁安装此应用程序”,
'请选择是否要使此软件可供所有用户使用'+
“或者只是你自己。”,
正确的,错误的);
OptionPage.Add(“&使用此计算机的任何人”);
OptionPage.Add(“&仅限我”);
如果我是德米兰戈登的话
开始
OptionPage.Values[0]:=True;
结束
其他的
开始
OptionPage.Values[1]:=True;
OptionPage.CheckListBox.ItemEnabled[0]:=False;
结束;
结束;
函数NextButtonClick(CurPageID:Integer):布尔值;
开始
如果CurPageID=OptionPage.ID,则
开始
如果选项Page.Values[1],则
开始
{将默认安装覆盖到程序文件({pf})}
WizardForm.DirEdit.Text:=ExpandConstant(“{userappdata}\My Program”)
结束
其他的
开始
WizardForm.DirEdit.Text:=ExpandConstant(“{pf}\My Program”);
结束;
结束;
结果:=真;
结束;