Windows Shell 来自 REST 的命名空间扩展 API

Windows Shell Namespace Extension from REST API

我正在开发一个类似于 Nextcloud 的开源云项目。它还提供文件上传和管理功能。

我想要一个 shell 名称空间扩展,它可以在 Windows 资源管理器中显示这些文件和文件夹。应该可以移动、删除、重命名和编辑文件/文件夹。

数据可从 REST API 或我的 Electron 客户端获得。

我懂 NodeJS,只懂一点 C#。

是否可以使用 NodeJS/Electron 创建 shell 命名空间扩展? 如果没有,是否有任何免费的图书馆可以使这项任务更容易?

Windows Explorer 使用 'COM' 作为其扩展模型。因此,从技术上讲,你可以使用任何你喜欢的,只要它支持COM。

对于 NodeJS,您将依赖运行时为您提供 COM 支持并包装适当的 API。我不知道有任何项目为 Windows Shell API 执行此操作。 Here 是一个用于 WinRT API 的。

对于 C# (.NET),您将再次依赖运行时来获得 COM 支持。 .NET 确实向您公开了这一点;虽然很乱。有一些项目包装了 shell API 并尝试尽可能地为您隐藏 COM 互操作 goo。

Here is an open source oneHere is a commercial one.

请注意,Microsoft 建议不要构建需要运行时(例如:.NET)的 shell 扩展。运行时可能会加载到不需要它的进程中。因此,在实践中,Microsoft 希望您使用 C/C++ 来构建 shell 扩展。 Here 是微软提供的示例项目。它是用 C++ 编写的。