一部の処理だけ管理者権限で実行するには?


フリマ  2010-01-29 19:28:39  No: 146730  IP: [192.*.*.*]

VB2008でアプリを作成していますが、以下の点で悩んでいます。
それは、あるボタンをクリックすると入力画面が出てきて、アプリ共通の情報を入力し、
それをHKEY_LOCAL_MACHINE\SOFTWARE以下のレジストリに書き込みたいのですが、
この場合、管理者として実行しないとHKEY_LOCAL_MACHINEのレジストリには書き込めません。
しかし、このアプリの上記機能以外については、管理者でなくとも利用できるようにしたいのです。
そこで質問ですが、ある処理だけ(例えば、上記例でいうところの入力画面表示以降の処理)を
管理者権限で実行させるということは可能なのでしょうか?
それとも、その機能だけ管理者権限で実行する別exeにするしかないのでしょうか?
ご回答のほど、よろしくお願い致します。

編集    削除
オショウ  2010-01-29 23:55:51  No: 146731  IP: [192.*.*.*]

.NETだけで構築するならば、別プログラムの方が楽でしょう〜

それ以外にも管理者権限が必要な機能が沢山あるならば、
また別の方法もありますが、レジストリに書くだけならば
わざわざ手間かけるより、その方がスッキリするかと。

以上。

編集    削除
オショウ  2010-01-29 23:56:50  No: 146732  IP: [192.*.*.*]

ちょっと語弊があるかナ・・・

VB2008だけで作るならば。と訂正しておきます。

以上。

編集    削除
フリマ  2010-02-03 20:15:52  No: 146733  IP: [192.*.*.*]

オショウ様、ご回答ありがとうございました。
ご連絡がおそくなり、申し訳ございません。
とりあえず、別プログラムで作成する方向で検討します。
ところで、メインアプリよりサブアプリを管理者権限で実行するとして、
サブアプリのフォームをメインアプリに対してモーダルで表示することは可能でしょうか?
(VB2008でできないのであれば、モーダル表示についてはあきらめてもいいと思っています。)
よろしくお願い致します。

編集    削除
オショウ  2010-02-04 06:36:41  No: 146734  IP: [192.*.*.*]

やったことないですが・・・
多分、できないのでは・・・と思います。
管理者権限を所有するアプリのオーナーに、通常レベルの
アプリがなりえるとは思えない。

ドラッグ&ドロップの不具合も同様に権限のあるなしで、
できるできないがありましたので・・・

※  あくまで未確認です。

以上。

編集    削除
subaru  2010-02-04 19:16:11  No: 146735  IP: [192.*.*.*]

>サブアプリのフォームをメインアプリに対してモーダルで表示することは可能でしょうか?

スクリーンセーバーの設定ダイアログはコマンドライン引数にウインドウハンドルを
渡してやることでモーダル表示を実現しているようですね。
Form.ShowDialog メソッドには IWin32Window を引数に取るものがあるので
もしかしたら同様の方法が使えるかもしれませんね。

#管理者権限の有無によって動作が変わるかは知りません。

編集    削除
aetos  2010-02-05 23:04:45  No: 146736  IP: [192.*.*.*]

> ところで、メインアプリよりサブアプリを管理者権限で実行するとして、
> サブアプリのフォームをメインアプリに対してモーダルで表示することは可能でしょうか?

できますよ。

編集    削除