web-dev-qa-db-ja.com

C ++:管理者としてプログラムを実行

一部のプログラムは、実行時に管理者権限を自動的に要求します。これらのプログラムには、右下隅に小さな盾が付いています。
enter image description here 今、私はこれをC++でどのように達成できるのか疑問に思っています。
このための関数はありますか、それとも特別なコンパイラ/リンカーコマンドが必要ですか?

14
Forivin

おそらく CreateProcessAsUser または CreateProcessWithLogonW 関数を探している必要があります。

次のようなオプションがもう1つあります。

  • プロジェクトの[プロパティページ]ダイアログボックスに移動します。
  • 次に、[構成プロパティ]ノードを開きます。
  • 次に、リンカーノードを開く必要があります。
  • 次に、[マニフェストファイル]プロパティを選択します。
  • 最後に、ユーザーアカウント制御(UAC)の有効化、UAC実行レベル、およびUACバイパスUI保護のプロパティを変更します。

このようなもの:

enter image description here

Syamがコメントで正しく述べられているように、解決策は実行可能ファイルにマニフェストを埋め込むことです。

20
Rahul Tripathi

実際、アプリケーションが管理者からの許可を必要とするそのマシンの機能を使用する場合、このシールドはアプリケーションが管理者から実行する必要があることを意味し、オペレーティングシステムから設定されます。
そのためにアプリから何かを設定する必要はありません。
答えがあなたに役立つことを願っています。

5