none
UACの動的昇格 RRS feed

  • 質問

  • こんにちは。かずひろかずです。
    今、Vistaで開発しているのですが、UACを動的に昇格させることはできるのですか?
    プロセスの再起動やマニフェストでなく、イメージとしてはApple Software Updateのような感じです。
    (ボタンを押したらUACダイアログが表示され、OKが押されたらそのアプリケーションが昇格される、といった感じです)
    2009年4月16日 11:28

回答

  • 今、Vistaで開発しているのですが、UACを動的に昇格させることはできるのですか?
    原則として、できないはずです。
    プロセスの再起動やマニフェストでなく、イメージとしてはApple Software Updateのような感じです。
    (ボタンを押したらUACダイアログが表示され、OKが押されたらそのアプリケーションが昇格される、といった感じです)
    Apple Software Updateの動きを確認していませんが、レジストリキーを見る限り、COM Elevationを使っているようですね。
    http://msdn.microsoft.com/en-us/library/ms679687(VS.85).aspx

    レジストリの下記のキーあたりを見ると、Apple Software Updateを構成するコンポーネントであることと、Elevationキーがあることが分かります。
    HKEY_CLASSES_ROOT\CLSID\{91A9E6A9-3935-4A37-AFBA-F0904B166364}


    COM Elevationは別プロセスとしてCOMを動かし、そのプロセスとの間を通信する仕組み…のはず。
    ちゃんと理解してないので間違っているかもしれません。
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年4月16日 14:19
    モデレータ

すべての返信

  • 今、Vistaで開発しているのですが、UACを動的に昇格させることはできるのですか?
    原則として、できないはずです。
    プロセスの再起動やマニフェストでなく、イメージとしてはApple Software Updateのような感じです。
    (ボタンを押したらUACダイアログが表示され、OKが押されたらそのアプリケーションが昇格される、といった感じです)
    Apple Software Updateの動きを確認していませんが、レジストリキーを見る限り、COM Elevationを使っているようですね。
    http://msdn.microsoft.com/en-us/library/ms679687(VS.85).aspx

    レジストリの下記のキーあたりを見ると、Apple Software Updateを構成するコンポーネントであることと、Elevationキーがあることが分かります。
    HKEY_CLASSES_ROOT\CLSID\{91A9E6A9-3935-4A37-AFBA-F0904B166364}


    COM Elevationは別プロセスとしてCOMを動かし、そのプロセスとの間を通信する仕組み…のはず。
    ちゃんと理解してないので間違っているかもしれません。
    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年4月16日 14:19
    モデレータ
  • Azuleanさん、返答ありがとうございます。

    やっぱりできませんか・・・
    COM Elevationですね。。。
    よく調べてみます。
    ありがとうございました!
    2009年4月17日 11:27
  • COM Elevationを.NETアプリケーションから活用するのはそれなりにハードルが高いかもしれません。
    情報が少ないですし、COMの知識がそこそこ要求されるかも。

    仕様要求が許すなら、別アプリを立ち上げるという形に回避した方が無難かもしれません。
    どうしても挑戦するのであれば、日程的に余裕があることが必要かと思います。


    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年4月17日 13:50
    モデレータ