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

问题描述:

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

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

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

预先感谢您的帮助

+1

可能的[如何使用Inno Setup在文件上设置'以管理员身份运行']的重复(http://stackoverflow.com/questions/16978917/how-to-set-run-as-administrator-on- a-file-using-inno-setup) –

+1

只是一个侧面提示:它不是[javafx-gradle](https:// bitbucke t.org/shemnon/javafx-gradle/)插件;)一个来自Danno Ferrin ...而且已经过时/死了 – FibreFoX

我找到了解决我的问题。

我说在我的.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()