问题标签 [shell-namespace-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
107 浏览

registry - 如何使用注册表项隐藏自定义驱动器?

我正在开发一个创建自定义驱动器的项目,可以在“这台电脑”下访问。该请求是尽可能使用注册表项在每个用户的基础上隐藏驱动器。

客户端机器是基于 Windows Server 2008R2 的 Citrix,但很快将升级到 2016。

我知道应用程序的 GUID,可以在

我没有看到任何明显的可以隐藏图标的东西。我还在以下位置创建了 GUID:

这似乎只有一半的工作。它将隐藏右侧窗格上的图标,但左侧的导航窗格仍会显示它。重新启动电脑并没有帮助隐藏它。

0 投票
0 回答
217 浏览

windows - 显示表单的 shell 命名空间扩展可以接收/传递文件到 IFileDialogs 吗?

我想在新的(从 Windows Vista 起)IFileOpenDialog 和 IFileSaveDialog 中显示一个 shell 命名空间扩展。

这些对话框显然可以显示自定义表单,例如内置的家庭组屏幕:

在此处输入图像描述

在此表单上,我想显示存储在数据库中的内部文件(带有各种其他选项)。

我的问题是:是否可以将用户在我的自定义表单上选择的文件传递给 IFileOpenDialog?是否可以让用户在数据库中选择一个位置,然后从 IFileSaveDialog 接收文件并将它们存储在数据库中?

重要的!我知道如果我使用我的 shell 命名空间扩展名实现虚拟文件夹和文件,这将是可能的。但是是否可以将我自己的表单嵌入到 shell 中,同时向对话框传递和接收文件?

如果可能,我需要在我的 shell 扩展中实现哪些方法来捕获对话框打开/保存事件?

0 投票
1 回答
474 浏览

windows - Windows 10 IOT Enterprise 上的 Shell 命名空间扩展注册表

我正在 Windows 10 IOT 企业版上创建一个带有 shell 命名空间扩展的虚拟文件夹。我使用的代码来自微软提供的 windows 7 SDK samplesm。这是整个项目:https ://github.com/pauldotknopf/WindowsSDK7-Samples/tree/master/winui/shell/shellextensibility/explorerdataprovider

该项目在 Windows 7 和 Windows 10 上完美运行,但在 Windows 10 iot Enterprise 上运行“regsvr32 explorerdataprovider.dll”后,虚拟文件​​夹图标确实显示在“我的电脑”下,但双击该图标后,没有任何反应。 在此处输入图像描述

所以我对此进行了调试,发现该函数DllGetClassObject从未被调用过。我的猜测是windows 10 iot enterprise registry for shell namespace extension和windows 10不同,所以我上网搜索尝试添加足够的registry key,目前我使用的registry是:

但它仍然不起作用。

virtul 文件夹的 shell 命名空间扩展是否缺少任何注册表项?

0 投票
0 回答
186 浏览

shell-namespace-extension - 如何以编程方式在导航窗格 (Windows) 或 Finder (Mac OS) 中创建 Dropbox 或 OneDrive 等虚拟文件夹?

我们有基于云的 Web 应用程序,用户可以在其中上传他们的文档并以文件夹方式对其进行管理。

我们想开发像 Dropbox 和 OneDrive 这样的桌面应用程序,用户可以在其中管理和同步他们的文件和文件夹从本地机器到云,反之亦然。

应该使用哪些技术来开发这种类型的桌面应用程序?

  1. Python
  2. 节点.js
  3. Electron.js
  4. Shell 命名空间扩展

图 1

图 1

图 2

图 2

感谢和问候 Rachit V. Sakhidas

0 投票
1 回答
412 浏览

node.js - 来自 REST API 的 Windows Shell 命名空间扩展

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

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

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

我知道 NodeJS,只知道一些 C#。

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

0 投票
0 回答
48 浏览

packaging - 如何在打包的应用程序中注册 Shell 命名空间扩展?

我需要部署一个Shell 命名空间扩展作为我的打包项目的一部分,由 Visual Studio 创建。我看到我可以注册上下文菜单、属性处理程序和 COM exe 和代理服务器,但由于某种原因不能注册 Shell 命名空间扩展。

是否可以在打包项目中注册 Shell 命名空间扩展?

如果没有,是否有任何计划扩展 Package.appxmanifest 架构以在 Windows 11 上支持它们?或者是否可以替代 Windows 11 上提供的 Shell 命名空间扩展?

0 投票
1 回答
56 浏览

filesystems - 我可以使用 SFGAO 标志来限制文件夹重命名、复制、移动、删除操作吗?

我需要限制 Windows 资源管理器中文件夹的某些操作。例如,不允许复制、移动、重命名、删除操作或将其设为只读(不允许在其中创建新文件和文件夹)。

我看到有SFGAO 标志,看起来我需要什么:SFGAO_CANCOPY、SFGAO_CANMOVE、SFGAO_CANRENAME、SFGAO_CANDELETE、SFGAO_READONLY。但是,它们需要创建 shell 命名空间扩展。我可以在不创建完整的命名空间扩展的情况下以某种方式在文件系统中的真实文件夹上设置这些属性吗?例如,通过为特定文件夹创建一些注册表设置?

0 投票
0 回答
87 浏览

windows - IShellFolderView 的 RemoveObject 和 AddObject 方法的替代方案

我知道IShellFolderView从 Windows 7 开始,Windows Shell 不再支持该接口。但是我仍然对该接口公开的方法(即RemoveObject和)感兴趣。AddObject以下调用不再编译

因为 riid:IID_IShellFolderView不再存在于shlobj.h(最新的 sdk)中。我需要访问一些允许我在文件夹视图中删除/添加或(隐藏/显示)文件夹对象的方法。我读了一篇文章,建议进行以下调用:

但是它似乎没有产生任何效果。我怀疑可能提供的 hwnd(即 m_hwnd_cabinet)不是正确的。谁能告诉我正确的手柄是什么,我怎样才能生产它?还是有其他方法?

谢谢!


我正在尝试调整这个项目https://github.com/stefankueng/tools/blob/main/StExBar/src/Filter.cpp#L44但它使用 IID_IShellFolderView。

0 投票
0 回答
48 浏览

c# - c#:如何在windows中创建一个自定义(虚拟)文件夹并用任意文件填充它

我有很多文件,它们位于我的 HD 上的许多不同文件夹中,我希望能够根据某些标准在一个地方显示这些文件的某些子集(可能是资源管理器中的“虚拟”文件夹)。例如,我只想显示 *.zip 文件或大小 < 100kb 的文件。在 Windows 中执行此操作的最佳方法是什么?

我不想为此编写自己的 GUI。我正在考虑使用 Windows 搜索结果,但它不符合我的目的。我最好的选择是什么?是否必须用 c# 编程都没关系,我可以使用任何解决方案。我听说过命名空间扩展,但几乎没有针对 c# 的支持或文档,只有付费库。