让VC程序在Win7下获得管理员权限
VC編譯出來的應用程序在win7或vista下運行,有可能因為權限問題,不能成功運行。
用下面的辦法,給應用程序添加一個manifest文件,程序運行時系統就會跳出UAC對話框,獲得管理權限。
1.打開應用程序的源代碼工程
2.添加一個“custom”資源,"resource type"填24,把資源ID改為1,然后把以下內容復制到資源內容中保存
3.重新編譯應用程序,此時會發現,廣用程序的圖標在Win7下會多出一個小盾標志。
這時雙擊的運行的時候,就會跳出框提示,獲取管理員運行。
--------------------------------------------------------------------------------------------------
上面的資源文件里有一個配置選項叫requestedExecutionLevel,? 這個項用于配置當前應用請求的執行權限級別。這個項有3個值可供選擇,如下所示:
asInvoker : 如果選這個,應用程序就是以當前的權限運行。
highestAvailable: 這個是以當前用戶可以獲得的最高權限運行。
requireAdministrator: 這個是僅以系統管理員權限運行。
默認情況下是 asInvoker。highestAvailable 和 requireAdministrator 這兩個選項都可以提示用戶獲取系統管理員權限。那么這兩個選項的區別在哪里呢?他們的區別在于,如果我們不是以管理員帳號登錄,那么如果應用程序設置為 requireAdministrator ,那么應用程序就直接運行失敗,無法啟動。而如果設置為 highestAvailable,則應用程序可以運行成功,但是是以當前帳號的權限運行而不是系統管理員權限運行。如果我們希望程序在非管理員帳號登錄時也可以運行(這種情況下應該某些功能受限制) ,那么建議采用 highestAvailable 來配置。
關于requestedExecutionLevel 設置的權威文檔請參考下面鏈接:
Create and Embed an Application Manifest (UAC)
?
總結
以上是生活随笔為你收集整理的让VC程序在Win7下获得管理员权限的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WinDbg实战调试命令笔记
- 下一篇: EASYSIZE