我啓動我的Windows應用程序,這樣在安裝完成後:如何正確啓動安裝結束時的可執行文件?
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchApplication"
...
Function LaunchApplication
ExecShell "" "$INSTDIR\Application.exe"
FunctionEnd
但是,這有一個奇怪的和不想要的副作用。顯然,我的應用程序是以管理員權限啓動的。
我不能拖&下降網頁瀏覽器(Firefox和IE測試)和我的應用程序之間的所有數據。
如果我辭掉應用程序(會話從NSIS開始),並從開始菜單圖標一切正常重新啓動! - 我可以將&拖放到瀏覽器中而沒有問題。
所以我懷疑,因爲在安裝開始時有一個UAC的請求,不知何故UAC權轉讓給我安裝後啓動過程。由於瀏覽器在安全性較低的過程中運行,Windows拒絕用它們傳播任何數據(在使用NSIS啓動的流程實例中)。
如何從NSIS啓動一個EXE文件,這樣UAC /安全問題就不會發生?
你是正確的注意到,升級的進程會自動啓動其他進程提升。自從UAC在Vista中引入後,這種行爲就已經存在(並且讓用戶惱火)。除非設置了某些註冊表項,否則系統會阻止未升級和已升級應用程序之間的數據傳輸。 – EricLaw