2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

管理者権限VisualStudioでD&D機能を持つアプリをデバッグすると上手く動かないケース

Posted at

事の発端

ドラッグ&ドロップでファイルパスを取得する機能を持つアプリをC#で作りたいと考え
Csharperにはお馴染みのDOBONさんの記事を参考にプログラムを作成する。

WindowsFormsにおけるD&Dの動きの流れとしては

  1. AllowDropをTrueにしたコントロール上に何らかのオブジェクトがドラッグされるとまず
  2. DragEnterなるイベントが発生する。そこでD&Dを許可する事で、Dropされた際に
  3. DragDropイベントが発生するのでその中で渡されたファイルパスをどうにかするというもの。

事前にDragEnterイベント内でD&Dを許可しないと、後続のDragDropイベントが発生しない、というのが初めてD&D機能を扱う自分にとっては新鮮でした。

ででで、VisualStudioで実際に作ったアプリをデバッグしてファイルをD&Dしてみると
DragEnterイベントが発生しない!

リリースビルドしたアプリではDragEnterイベントが発生した

デバッグで起動したアプリにD&Dしてもイベントが発生しないので色々調べると
管理者権限云々が関係あるという記述を見つける。
自分はVisualStudioを管理者権限で起動していたので、Debugでも管理者で起動されてるのでは?と考え
一旦リリースしてアプリを通常起動してD&Dしてみるとイベントが発生した
そしてそのアプリを管理者権限で実行してD&Dしてみるとイベントが発生しなかった

とりあえず解決

管理者権限で起動したアプリケーションでD&Dを行うのは、どうもややこしい制約があるそうです
UACやら管理者権限やらは詳しく無いので別途検索して頂くのが良いかと思います。

とりあえず解決策としてVisualStudioを通常起動する事で、デバッグ時にD&Dを有効にする事が出来ました。
やはりVisualStudioを管理者権限で起動すると、Debugも管理者扱いになる模様です。

初歩的過ぎる内容かもしれませんが、ハマって1時間くらい浪費したので
誰かのお役に立てれば幸いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?