2014-03-05 91 views
2

短版:JWrapper EXE在Windows 8需要 「以管理員身份運行...」

我們生產的Windows 8執行上啓動內部BAT文件的EXE。目前,EXE/BAT功能需要用戶右鍵單擊並以「以管理員身份運行...」。我們希望它能夠通過簡單的雙擊工作。即當用戶或程序調用時不進行交互。

龍版本:

我們正在使用最新版本的JWrapper來生成EXE。作爲啓動的一部分,EXE調用一個BAT文件。 BAT文件啓用防火牆規則。規則看起來依稀有如:

netsh advfirewall firewall add rule name=acmeCompanyName program=AcmeCompany.exe Action=Allow Dir=In protocol=6 Profile=Any 

這一切都適用於Win7。我們正在使用具有管理員權限的帳戶測試Windows 8上的EXE。微軟SmartScreen已禁用。 User Account Control(UAC)已禁用。 (我們知道registry issue with UAC,但註冊表解決方案似乎太脆弱了)。

在JWrapper XML配置,我們有以下幾點:

<InstallType>CurrentUser</InstallType> 
<WindowsElevation>RequireAdministrator</WindowsElevation> 

當我們的EXE雙擊,它開始,但BAT文件無法寫入防火牆規則。如果我們右鍵單擊EXE,並選擇「以管理員身份運行...」,它就可以工作。

問:

如何才能實現雙擊的解決方案?

+0

你試過在[JWrapper論壇]發佈這個(http://www.jwrapper.com/forum.html)?他們在那裏很有幫助: –

+0

我同意他們是有幫助的(而且JWrapper是一個很棒的工具)。首先在這裏發帖,因爲我可能需要給它賞金。 –

回答

2

我們在JWrapper支持的幫助下解決了它。我們的解決方案是在JWrapper XML配置使用以下值:

<WindowsElevation>RequireAdministrator</WindowsElevation> 
<WindowsElevationUiAccess>true</WindowsElevationUiAccess> 
<InstallType>AllUsers</InstallType> 

編輯:

對於想要安裝CurrentUser(不AllUsers的)應用程序,這種方法的工作原理,以及:

  • 創建一個直接從Java調用「netsh ...」的新虛擬應用程序(例如InstallFirewallRules)。無需運行BAT文件。
  • 創建一個JWrapperPostInstallApp。這個程序應該調用使用JWSystem.forkVirtualApp()InstallFirewallRuleselevateToAdmin = true
相關問題