Как реализовать IDropTarget в приложении CSharp и зарегистрировать его для типов файлов? - PullRequest
2 голосов
/ 21 марта 2011

Я реализую небольшой инструмент в C #, который работает с файлами.Поскольку я ленивый, я хочу зарегистрировать свой инструмент для типов файлов в реестре, чтобы иметь возможность просто открыть все мои файлы из проводника.В настоящее время я использую HCR\MyFile\shell\open\command, чтобы указать вызывающую командную строку для моей программы с "%1" для текущего файла.

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

Как в моем приложении CSharp реализовать IDropTraget?

Как мне тогда зарегистрировать свое приложение в реестре Windows для правильного определения типов файлов?

Я относительно новичок во всем, что касается COM.Я «использовал» его несколько раз, но я никогда не писал COM-класс самостоятельно.Есть ли пример или учебник?(Я искал, но ничего не нашел, по крайней мере, я ничего не узнал в этом направлении)

Спасибо!

1 Ответ

2 голосов
/ 21 марта 2011

Если ваше приложение использует Windows Forms, любой класс, производный от Control, может установить для свойства AllowDrop значение true и обрабатывать D & D (почти) автоматически.

Смотрите здесь что-то похожее: Перетаскивайте файлы из Windows Explorer в форму Windows

В противном случае вы все равно можете повторно использовать реализацию форм Windows на более низком уровне, поскольку здесь определено значение IDropTarget: IDropTaget

...