Как заставить обработчик Drop Handler оболочки Windows работать с папкамиC#

Место общения программистов C#
Ответить
Anonymous
 Как заставить обработчик Drop Handler оболочки Windows работать с папками

Сообщение Anonymous »

Я пытаюсь написать расширение оболочки Windows. Моя цель — создать обработчик, который мог бы обрабатывать все операции перетаскивания в папке. Когда файлы перетаскиваются в папку, я хочу выполнить свою бизнес-логику, которая либо
  • берёт на себя управление операцией перетаскивания, ИЛИ
  • Позвольте окнам вести себя по умолчанию.
Я использую SharpShell как простой способ реализовать расширение оболочки. Это работает, но не так, как я ожидал. Похоже, что расширение оболочки позволяет вам справиться со случаем «что, если файл будет удален в ФАЙЛ». Например, если я помещаю PDF-файл в текстовый файл, я могу его перехватить. Но DragEnter или Drop никогда не вызываются при перетаскивании (и сбросе) файлов в папку.
Поддерживается ли то, что я хочу сделать, без расширения пространства имен?
[ComVisible(true)]
[COMServerAssociation(AssociationType.AllFilesAndFolders)]
public class MyDropHandler : SharpDropHandler
{
protected override void DragEnter(DragEventArgs dragEventArgs)
{
dragEventArgs.Effect = DragDropEffects.Copy;
}

protected override void Drop(DragEventArgs dragEventArgs)
{
System.Diagnostics.Debugger.Launch();
}
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... or-folders
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»