2013-10-27 205 views
12

某些程序在運行時會自動請求管理員權限。這些方案都標有在右下角的一個小盾牌:
enter image description here 現在,我不知道我怎麼會用C實現這一點++。
有沒有這個功能,或者我需要一些特殊的編譯器/鏈接器命令?C++:以管理員身份運行程序

+1

這不是[標籤:C++],但程序是如何連接的屬性設置!請參閱_'Run作爲Administrator'_複選框。 –

+4

在可執行文件資源中包含一個正確製作的*清單文件*。 – syam

+2

它是特定於操作系統的。在Linux和Unix(或POSIX)上閱讀關於[Seteuid](https://en.wikipedia.org/wiki/Setuid)可執行文件 –

回答

12

你必須是可能尋找CreateProcessAsUserCreateProcessWithLogonW功能。

還有一個選項是這樣的: -

  • 轉到項目的屬性頁對話框。
  • 現在打開配置屬性節點。
  • 接下來,您必須打開鏈接器節點。
  • 然後選擇Manifest File屬性。
  • 最後修改啓用用戶帳戶控制(UAC),UAC執行級別, 和UAC旁路UI防護性能。

Soemthing這樣的:

enter image description here

而作爲SYAM在評論中提到正確的解決辦法是嵌入清單中的可執行文件。

+0

不,這不能實現OP想要的功能(自動「屏蔽」圖標上的圖層+以管理員身份首先運行UAC提示)。正如我在評論中所說的,解決方案是在可執行文件中嵌入一個清單。 – syam

+1

連接到時,調用這些函數的程序會自動標記爲圖標擴展名,當然? –

+0

@syam: - 用你提到的那個更新了我的答案。希望現在有道理? –

5

其實,這個盾牌,這意味着應用程序將需要從管理員身份運行,如果該應用程序將使用這臺機器這就需要從系統管理員權限的任何功能,從操作系統設置。
您不需要爲應用程序設置任何內容。
希望答案可以幫助你。