Я пытаюсь написать расширение оболочки 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