C# 如何在CSharp应用程序中实现IDropTarget并将其注册为文件类型?

C# 如何在CSharp应用程序中实现IDropTarget并将其注册为文件类型?,c#,.net,registry,file-type,C#,.net,Registry,File Type,我正在用C#实现一个可以处理文件的小工具。 因为我很懒,所以我想在注册表中的文件类型上注册我的工具,以便能够简单地从资源管理器打开我的所有文件。 目前,我正在使用HCR\MyFile\shell\open\command为当前文件指定调用我的程序的%1”命令行 这适用于单个文件,但不适用于选择多个文件。 我发现我的应用程序应该实现IDropTraget来获取多个文件,但我不知道如何做到这一点 如何实现我的CSharp“应用程序”IDropTraget 然后如何在windows注册表中注册我的应用

我正在用C#实现一个可以处理文件的小工具。 因为我很懒,所以我想在注册表中的文件类型上注册我的工具,以便能够简单地从资源管理器打开我的所有文件。 目前,我正在使用
HCR\MyFile\shell\open\command
为当前文件指定调用我的程序的
%1”
命令行

这适用于单个文件,但不适用于选择多个文件。 我发现我的应用程序应该实现
IDropTraget
来获取多个文件,但我不知道如何做到这一点

如何实现我的CSharp“应用程序”
IDropTraget

然后如何在windows注册表中注册我的应用程序以正确调用文件类型

我对整个COM都比较陌生。我现在已经“使用”过好几次了,但我从来没有自己编写过COM类。 是否有示例或教程?(我搜索了一下,但什么也没找到,至少我没有在这个方向上认出任何东西)


谢谢

如果应用程序使用Windows窗体,则从控件派生的任何类都可以将AllowDrop属性设置为true,并(几乎)自动处理D&D

请参见此处了解类似内容:


否则,您仍然可以在较低级别上重用Windows窗体实现,因为此处定义了IDropTarget:

Hi Simon,谢谢您的回答,但缺少的是如何在注册表中注册我的应用程序的文件类型?@3of4-这里有一个链接,用于说明这一点:我只找到使用普通打开谓词的文件关联。这就是我目前正在做的事情,也是导致我遇到问题的原因(每个文件将在单独的过程中打开)。我在某处读到IDropTarget可用于将多个文件放入一个进程。但我想我会重新措辞我的问题(在谷歌的另一轮之后),然后再问一遍。谢谢你的帮助。