Windows Vista の新しい UAC の機能 (セキュリティ) でコードが例外を出す場合の対処について 【Part 2】(松崎 剛 ブログ (Tsuyoshi Matsuzaki Blog))より:
以前、UAC について記載しましたが(こちら)、この方法ではマニフェストを作成する方法のため、動的に解決できないか(実行中に UAC の昇格が必要になったら昇格し普段はしたくない、など) とご質問を受けることがたまにあります。
そこで今回は、UAC で昇格をおこなうもう1つの方法について記載します。
結論から記載しますが、この方法は起動中の状態を維持したまま昇格するというものではありませんが、UAC の昇格を実行時に動的に解決して昇格することは可能です。(Vista の新しい Recovery の仕組みと組み合わせられるといろいろできるかもしれません、、、)
こちら("Developer Best Practices and Guidelines for Applications in a Least Privileged Environment" 英文)。下へ、少しスクロールしてください。
- 実行する処理を、COM オブジェクト化する
- 呼び出す関数をエキスポートする
- 実行のトリガーとなるコントロールを、シールドアイコンで修飾する
- CoCreateInstanceAsAdmin() API 関数にて COM オブジェクトを作成する
- エキスポートしてある関数を呼び出す
投稿日時 : 2007年1月26日 22:08