ごまなつ Blog

楽しく働ける世界を目指して

【C#】ドラッグ&ドロップが作動しないのは、権限が異なるため

ドラッグ&ドロップでファイルパスを取得する機能がWindowsアプリにあります。その機能を実装したにもかかわらず、VisualStudio上で動かしてもこの機能が動作しない。ドラッグ&ドロップできるときは、マウスカーソルが変化しますがそれすらも起こらない。調べた結果のメモです。

結論

VisualStudioをユーザ権限で開いてください(管理者権限で開かない)

経緯

以前開発していたアプリは、Windowsのサービスに追加されて常駐するものでした。Windowsのサービスに追加されるため、VisualStudioのデバッグ環境上でも毎回「VisualStudioが変更を加えることを許可しますか」のダイアログが出て煩わしかったため、VisualStudioを常に管理者権限で起動するように変更していました。

今回の状況は、権限が異なるアプリで、Windowsによって操作がブロックされています。VisualStudioが管理者権限で起動しているため、VisualStudioでのデバッグ環境で起動しているアプリは管理者権限、しかしフォルダエクスプローラはユーザ権限で開いているため、そこのフォルダからのドラッグ&ドロップは受け付けなかった、ということだと思われます。