使用javafx-gradle和InnoSetup以及管理员权限构建.exe

时间:2016-12-07 09:34:02

标签: java javafx javafx-8 inno-setup

我目前正在开发一个项目,我必须使用JavaFX构建桌面应用程序。我正在使用javafx-gradle-plugin(https://github.com/FibreFoX/javafx-gradle-plugin)来构建和捆绑应用程序。

一切正常,但安装后应用程序不会请求管理员权限运行。如果我使用admin用户启动它一切正常,但如果你以“普通”用户启动它,应用程序将无法正常工作。

启动.exe时是否有办法请求管理员权限?

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。

我在.iss文件中添加了一个条目,用于生成InnoSetup安装程序,如下所示:

[Registry]
Root: "HKLM"; Subkey: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\"; ValueType: String; ValueName: "{app}\xxx.exe"; ValueData: "RUNASADMIN"; Flags: uninsdeletekeyifempty uninsdeletevalue; MinVersion: 0,6.1

请注意,添加此条目时,必须将runascurrentuser添加到运行配置中,如下所示:

[Run]
Filename: "{app}\xxx.exe"; Parameters: "-Xappcds:generatecache"; Check: returnFalse()
Filename: "{app}\xxx.exe"; Description: "{cm:LaunchProgram,xxx}"; Flags: runascurrentuser nowait postinstall skipifsilent; Check: returnTrue()
Filename: "{app}\xxx.exe"; Parameters: "-install -svcName ""xxx"" -svcDesc ""xxx"" -mainExe ""xxx.exe""  "; Check: returnFalse()