Node.js RESTAPI中的Windows外壳命名空间扩展

Node.js RESTAPI中的Windows外壳命名空间扩展,node.js,rest,electron,shell-namespace-extension,Node.js,Rest,Electron,Shell Namespace Extension,我正在做一个开源云项目,类似于Nextcloud。它还提供了文件上传和管理功能 我希望有一个shell名称空间扩展,在Windows资源管理器中显示这些文件和文件夹。可以移动、删除、重命名和编辑文件/文件夹 数据可以从RESTAPI或我的Electron客户端获得 我知道nodej,只知道一些C NodeJS/Electron是否可以创建shell名称空间扩展? 如果没有,是否有免费的库使此任务更容易?Windows资源管理器使用“COM”作为其扩展模型。因此,从技术上讲,您可以使用任何您喜欢的

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

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

数据可以从RESTAPI或我的Electron客户端获得

我知道nodej,只知道一些C

NodeJS/Electron是否可以创建shell名称空间扩展?
如果没有,是否有免费的库使此任务更容易?

Windows资源管理器使用“COM”作为其扩展模型。因此,从技术上讲,您可以使用任何您喜欢的东西,只要它支持COM

对于NodeJS,您将依赖于运行时为您提供COM支持并包装适当的api。我不知道有哪个项目能为WindowsShellAPI实现这一点。是WinRT API的一个

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

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

Note ShellBoost(商业版)不加载任何CLR到主机进程(Explorer或其他),它有一个本地C/C++代理来避免这一点(免责声明:我是这个产品的设计者)。