在Vista以后的windows版本中,有些時候需要提升編譯后生成程序的權限,即希望讓生成的程序以管理員身份運行。雖然在一般情況下,可以使用鼠標右鍵選擇的方式來強行以管理員身份運行,但它並沒有屏蔽普通運行方式,而且普通人通常也不會使用右鍵選擇以管理員身份運行,所以必須在生成程序時就限定程序只能以管理員方式來運行。
先簡單說一下,在Vista以后的windows版本中,微軟引入了UAC機制,它的目的是防止程序對操作系統本身進行惡意篡改。要讓程序以管理員身份運行,就需要在程序中引入UAC標注,也即讓程序顯示“UAC盾牌”。

VS2008設置應用程序鏈接生成UAC設置:Linker->Manifest File

UAC Execution Level可選參數:
0: asInvoker:應用程序將使用與啟動它的進程相同的權限運行。 可通過選擇“以管理員身份運行”將應用程序提升為更高權限。
1: highestAvailable:應用程序將使用可能的最高權限級別運行。 如果啟動該應用程序的用戶為管理員組的一個成員,則此選項與 requireAdministrator 相同。 如果可用的最高權限級別高於打開進程的級別,則系統將提示提供憑據。
2: requireAdministrator:應用程序將使用管理員權限運行。 啟動該應用程序的用戶必須是管理員組的一個成員。 如果打開進程未使用管理權限運行,則系統將提示提供憑據。
