C アプリケーションでの管理者権限の実行時昇格
実行時にオペレーティング システムに管理者権限を要求できる機能は、特定のユーザーにとって望ましい機能です。アプリケーション。 Windows では、この機能はさまざまなメカニズムを通じて利用可能です。
コンパイル時の昇格
質問で述べたように、コンパイル中にアプリケーションに管理者権限を付与できます。アプリケーションのマニフェストを「requireAdministrator」に設定します。ただし、実行時に昇格の要件が発生する場合は、他のアプローチが必要です。
実行時昇格
実行時に既存のアプリケーションの権限を昇格するには、いくつかのオプションがあります。 :
外部マニフェスト
コンパイル時の昇格と同様に、外部マニフェストを作成してアプリケーションの実行可能ファイルに関連付けることができます。このマニフェストでは、「requestedExecutionLevel」を「requireAdministrator」に指定できます。
RunAs Verb
ShellExecute 関数で「runas」動詞を使用すると、次のことが可能になります。昇格した特権でプロセスを起動します。このオプションを使用すると、プロセスの実行前にユーザーに管理者の資格情報の入力を求めることができます。
現在のインスタンス専用
現在のインスタンスの権限を昇格することが目的の場合アプリケーションのインスタンスでは、メモリ内に保存されているデータを失うことなく、Windows の「CreateSymbolicLinkW」関数を使用して、管理者アカウントの実行可能ファイルへのシンボリック リンクを作成できます。この手法では、実行中のアプリケーションと同じ名前のシンボリック リンクを作成し、それを実行可能ファイルの昇格されたバージョンにポイントします。その後、元のアプリケーションのメモリとリソースを継承して、昇格されたバージョンを実行できます。
以上が実行時に C アプリケーションの管理者権限を昇格するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。