在前面的文章中提到過,我是用的是一款名叫
Inno Setup
的打包安裝工具,可以打包成
windows
安裝檔案。
在項目收尾的時候,發現使用
Inno Setup
打包成安裝檔案後,輕按兩下安裝檔案,執行安裝,在最後一步的時候,如果你勾選了
Launch 某應用
的時候會出現需要提升程式執行權限的問題,如下:
在網上查了一下,其中微軟官網提到需要提升程式的操作權限即需要用管理者權限啟動才沒有問題,連接配接檢視這裡。
然而,我并不想每次使用者啟動程式的時候都需要右鍵程式,然後選擇管理者權限執行,是以這種官方的這種方式不是我想要的。
在無意間做了這麼個嘗試,安裝之後選擇
Launch 應用
的時候會出現這個錯誤,當我把錯誤關閉掉後,然後在輕按兩下執行應用,發現并沒有這個錯誤,那麼說明這并不是
windows
的問題,而我程式也并未牽扯到需要提升權限的操作。那麼隻有一種可能,那就應該是我的打包軟體的問題,即
Inno Setup
的問題。
于是在網上搜尋怎麼給
Inno Setup
安裝的軟體提供
啟動時的管理者權限
?
發現網上還是有不少教程的,來看一下具體怎麼操作。
首先你需要下載下傳一個可以檢視二進制檔案的工具,因為我們需要去編輯
Inno Setup
中的二進制檔案,是以需要下載下傳
Resource Hacker
TM,連接配接
下載下傳之後打開
Resource Hacker
TM,然後打開
Inno Setup
的安裝目錄,找到
SetupLdr.e32
檔案,打開。
如果你忘了軟體的具體的安裝目錄,可以右鍵該軟體,檢視屬性,就可以看到具體的安裝目錄:
因為
Resource Hacker
TM 預設打開的是
.res
,
.exe
,
.dll
等格式的檔案,是以第一次打開的時候,是看不到
SetupLdr.e32
檔案的,是以你需要切換成所有格式的檔案。
點選
File->Open
,選擇
Inno Setup
的安裝目錄
如下,這樣就能看到
SetupLdr.e32
這個檔案了,然後選擇打開。
打開後,找到
requestedExecutionLevel
,并将其修改為管理者權限
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
// 改為
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
最後,點選編輯,并儲存
最後,你可以使用
Inno Setup
再次進行應用的打包,打包之後安裝勾選
Launch 應用
,就不會再出現這個錯誤了。
還有一個問題待研究,為了安全考慮,一般安裝的程式不會讓它去擷取管理者權限,否則你的計算機可能處于危險狀态。
Inno Setup
既然可配置管理者權限,那麼是不是也可以取消程式第一次
Launch
的時候,不需要管理者權限就能執行呢?研究之後,下片文章再講。