gpt4 book ai didi

c# - 使用 C# 将 Shell 集成到 Windows 中以获取特定文件类型

转载 作者:可可西里 更新时间:2023-11-01 13:53:58 25 4
gpt4 key购买 nike

因此,我搜索了有关如何将您的应用程序与 C# 进行外壳集成(将其添加到右键单击菜单)的指南,但我找不到如何仅针对特定文件类型执行此操作。我知道这是可能的,因为 WinRar 做到了。那我该怎么做呢?

最佳答案

通常有两种方法可以实现这一点。

  1. 注册表项 - 您可以在 HKEY_CLASSES_ROOT 下写入键和值。如果你查看那个配置单元,你会在你的电脑上看到扩展。看这个article有关键和值的详细信息。在这里可以使用一些简单的选项,例如使用您的应用程序打开 .myfile 类型的选项。这是一个File Association Example

  2. Shell 扩展(用 COM 编写):在这里您可以做更复杂的事情,例如 Handlers.它们将被 Windows 调用,因此您可以执行诸如在菜单上绘制等操作,或者在右键单击文件时添加自定义操作。这里除了文件之外还有更多内容,您甚至可以添加属性表和自定义工具提示。

你会发现一些 talk关于不使用 .NET 编写 Shell Handler**。这仅适用于 版本的 .NET。 Its all ok with .NET4.

这篇文章应该可以帮助您解决 Context Menu Handler in .NET4

** 为什么它不推荐:

当您编写 shell 处理程序时,它会被主机进程(通常是 Windows 资源管理器)调用,但也会被诸如 FileOpenDialogs 和 FolderBrowser 对话框之类的东西调用。因此,如果您在 .NET 2.0 中编写了一个 shell 扩展,并且一个名为“文件打开对话框”的 .NET 1.1 应用程序将出现问题,然后您的 .NET 2.0 shell 处理程序将被调用,并且您的 .NET 1.1 应用程序具有较旧的 CLR并且会有版本冲突。

所以我很高兴终于发现这已在 .NET 4 中以某种方式得到修复 =)

关于c# - 使用 C# 将 Shell 集成到 Windows 中以获取特定文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5450387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com