19/03/21 19:16:13.21 nFWHFdE/.net
マウスエミュレートなどを使わずにドラッグ&ドロップを実現するにはどうしたらよいでしょうか。
具体的には、ユーザーはマウス操作を邪魔されることなく、バックグラウンド・アプリでドラッグ&ドロップしたいです。
14:さまよえる蟻人間
19/03/21 21:47:53.92 /g5fyt6Z.net
>>13
DROPFILES構造体とHGLOBALとPostMessage(WM_DROPFILES)を使えばできるはず。
15:13
19/03/21 22:22:51.42 nFWHFdE/.net
>>14
確かにその方法で、メモ帳やサクラエディタにはでドロップできるのですが、Visual Studio 2017やMozilla Firefoxにはドロップできないようです。
トップウィンドウのウィンドウハンドルを指定しているのですが、WM_DROPFILEを送るウィンドウハンドルの問題なのか、それとも違う要因なのか。
16:さまよえる蟻人間
19/03/21 22:28:46.83 FlExFmKW.net
>>15
WS_EX_ACCEPTFILES拡張スタイルをチェックしながら、WindowFromPoint、GetParent、EnumChildWindowsなどでたどっていく。
ウィンドウの構造は、Spy++で分かるはず。
17:13
19/03/21 22:35:43.09 nFWHFdE/.net
>>16
何をたどるのですか?
もう少し汎用的な例に変えます。
エクスプローラーで開かれたフォルダにファイルをドロップするにはどうすればいいでしょうか。
Windows10で試しているのですが、どなたかドロップ出来た方いらっしゃいますか?
18:さまよえる蟻人間
19/03/21 22:46:53.71 FlExFmKW.net
たどるは、ウィンドウハンドル。ハンドルなくば話にならぬ。
FindWindow, FindWindowEx、EnumWindowsでまずはターゲットのウィンドウハンドルを取得する。
19:13
19/03/21 22:56:31.56 nFWHFdE/.net
>>18
たびたび回答していただくのは有難いのですが、失礼ながら徒労に思えます。
フォルダへのファイルドロップの成功事例はご存知でしょうか?
20:デフォルトの名無しさん
19/03/21 23:24:27.79 bEjwjHsM.net
エクスプローラがやってんだからできるだろw
21:13
19/03/21 23:28:19.79 nFWHFdE/.net
ちなみに徒労について書いておくと、
Visual Studio 2017とexplorer.exe をSpy++で調べたところ、WS_EX_ACCEPTFILESを持つウィンドウはひとつもなし。
22:さまよえる蟻人間
19/03/21 23:35:16.35 FlExFmKW.net
ならば、OLE D&Dしかない。
23:13
19/03/21 23:38:34.07 nFWHFdE/.net
>>22
マウスエミュレートなしでどうかひとつ m(_ _)m
24:さまよえる蟻人間
19/03/22 00:46:13.42 56fjhQno.net
ヒント: URLリンク(github.com)
25:デフォルトの名無しさん
19/03/22 01:29:49.59 lgvalJzA.net
そういうのはソフトによってできるできないどうしてもあるよ
ひとことでD&Dいっても実装方法色々あるからね
汎用的なの考えずにターゲット絞れ