當程式需要有系統管理者權限時
Vista是通過manifest來判斷所需的權限
也就是 YourProgram.exe 就會看同位置下的 YourProgram.exe.manifest (xml檔)
主要有2個步驟
1.先編這個xml檔
(1)複製「專案/Properties」下的app.manifest
(2)再把
(3)把
*如果沒app.manifest這個檔案,右鍵「專案/屬性」下的分頁「安全性」,把啟用ClickOnce安全性設定取消就會出現了
2.編完後,利用mt.exe 來下
mt -manifest YourProgram.exe.manifest -outputresource:YourProgram.exe
*編完得到失敗結果:
Code:9009 => 找不到mt.exe , 找出mt.exe 再加入
通常會在C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin 底下找到mt.exe
到環境變數裡Path設定吧
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin;
Code:31 => 還不是很確定,就多按幾下 或切個畫面就可以了
Reference中有詳細的圖文說明
就照著步驟做吧
「就感心」的是 筆者有教在「建置後事件命令列」中,放進步驟2
也就是當你的程式compile後,就會自動來執行這段指令。
不然多個步驟 忘了編就麻煩了
*將manifest檔放到bin/Release下
Reference
2 則留言:
你好 : 我看完了你寫的"讓程式在Vista下 以「系統管理者」身份執行" 我有成功的用出來 不過有個問題想請教你 我這邊有將方案加上了一個新的安裝和部屬的專案,安裝和部屬的檔案來源就是已經修改過權限的執行檔,但是經由安裝和部屬製作出來的msi檔,安裝後會發現執行檔的權限被修改過,不是我們修改後的檔,而是修改之前的樣子,請問這問題該怎們解呢?
多謝解答!!
我是express版
頂多用ClickOnce做內部的封裝
沒用過"安裝和部屬專案"
對外我都用installshield封裝...
好不容易說服老板買...8萬... XD
重新將執行檔加入專案裡試試
不然重新建一個專案
我就不信還會是舊的...
張貼留言