Могу ли я получить назначение / цель вызова DoDragDrop?

У меня есть приложение WPF. Я хочу позволить пользователям перетаскивать "файлы" (или их визуальное представление) из моих окон WPF в настоящий проводник Windows.

Это мне удалось сделать с помощью родного DoDragDrop из Ole32.dll

[DllImport("ole32.dll", CharSet = CharSet.Auto, ExactSpelling = true, PreserveSig = false)]
public static extern void DoDragDrop(System.Runtime.InteropServices.ComTypes.IDataObject dataObject IDropSource dropSource, int allowedEffects, int[] finalEffect);

Это прекрасно работает.

Но вместо этого скопируйте файл, я хочу просто получить пункт назначения. т.е. если пользователь перетащил файл в проводник, открытый в C:\Folder - я хочу получить C:\Folder... Или, по крайней мере, получить объект, с которым произошло событие удаления (которое находится за пределами моего приложения), и надеюсь, тогда я смогу получить путь от этого объекта.

1 ответ

Решение

Если вы не создали целевое и конечное приложения, вы не сможете получить информацию о целевом или целевом приложении. Эта информация абстрагирована от дизайна и ограничена.

Предостережение: если вы не напишите какой-либо метод перехвата или инъекции Dll, чтобы подключить события перетаскивания и отслеживать их

Другие вопросы по тегам