2016-12-07 38 views
0

我目前正在開發一個項目,在該項目中我必須使用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

回答

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()