DOBON.NET DOBON.NETプログラミング掲示板過去ログ

アプリケーションを管理者に昇格させながらのAllowDrop

環境/言語:[Windows 7 ]
分類:[.NET]

こんにちは。いつもお世話になっています。

今作っているアプリケーションを管理者に昇格して起動する必要があるため、このサイトにある「UACが有効の時、アプリケーションを管理者に昇格させて起動する」(http://dobon.net/vb/dotnet/system/asadmin.html)を参考にしました。具体的には「Visual Studioの機能を使用する方法」を参考にしています。確かにこの方法により、アプリケーションを管理者に昇格して起動できることができますが、AllowDropが使えなくなって困っています。PictureBoxでフォルダーを受け取るようにしていますが、アプリケーションを管理者に昇格すると、PictureBoxがフォルダーの受け取りを拒否するようになります。(車両通行止めに似たマークが現れる。)アプリケーションを管理者に昇格して起動しながらAllowDropの機能を存続する方法はあるでしょうか?

よろしくお願いします。
2012/08/30(Thu) 07:20:08 編集(投稿者)

基本的に方法はないと考えて、仕様・設計を見直してください。
今回の挙動は .NET に限らず、Windows アプリケーションの共通の制限です。
(同じ権限のアプリからならドラッグできるので、AllowDrop が無効になっているわけではありません)

Q: Why Doesn’t Drag-and-Drop work when my Application is Running Elevated? – A: Mandatory Integrity Control and UIPI
http://blogs.msdn.com/b/patricka/archive/2010/01/28/q-why-doesn-t-drag-and-drop-work-when-my-application-is-running-elevated-a-mandatory-integrity-control-and-uipi.aspx

// アプリの起動から終了まで管理者権限である必要があるのかも含めて見直すとか。
■No30868に返信(缶々さんの記事)
> 管理者に昇格すると、PictureBoxがフォルダーの受け取りを拒否する

(案1)管理者モードのエクスプローラーからドロップしてもらう。
(案2)管理者モードを使用しないで済むよう、プログラムを見直す。
(案3)管理者モードが必要な部分と不要な部分とで、別プロセスに分けてみる。
Azuleanさん、魔界の仮面弁士さん、助言ありがとうございます。

成る程。Explorerが管理者モードになっていないのが原因なのですね。メニューからフォルダーを選択できるようにもしてあるので、とりあえず、ドラッグ・ドロップでフォルダーを読み込みたい人達のために、使い方マニュアルにそのような趣旨を明記するにします。

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板