管理者権限が必要なため、レジストリ操作やその他のシステム操作を行う必要があります。現在、ユーザーは「管理者として実行」としてアプリケーションを起動する必要があります。
では、どうすれば管理者権限でアプリケーションを起動できますか?
CreateProcessAsUser
またはCreateProcessWithLogonW
あなたが必要とする主なものです。の場合CreateProcessAsUser
、トリックを実行するために他のいくつかのことを使用する必要があります(たとえば、AdjustTokenPrivileges
使用する特権を有効にしたりLogonUser
、ユーザーのトークンを取得したりするため)。
この目的でShellExecuteEx () を使用することもできます。このルーチンは、SHELLEXECUTEINFO 構造体が渡されることを想定しています。この構造体の関連属性は「lpverb」で、値「runas」に設定する必要があります。これにより、昇格された特権で実行されるタスクが保証されます。
答えはプログラムで開始することを扱いますが、プログラムの全体的な目的が管理者として実行してこれらの変更を行うことである場合は、適切なマニフェストを追加して Windows を昇格させることができます。
アプリケーションの一部だけが管理者アクセスを必要とする場合は、COM 昇格を確認してください。