问题标签 [shell-extensions]

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 回答
1637 浏览

windows - Shell 扩展在 Windows-Explorer 中不起作用,但在其他程序中起作用?

我使用 ATL 制作了 shell 扩展(实现IContextMenu, IShellExtInit, IExtractIcon& IPersistFile),“按书本”。

有趣的是,在“Total Commander”和“Free Commander”等文件管理器中一切正常,但在 Windows 的资源管理器中完全失败:


当我在 TC(“Total Commander”)中右键单击我的注册文件(比如*.000)时,扩展程序有效:我在日志和上下文菜单中看到它:出现带有图标的条目。

但是如果我使用 Win-Explorer,什么都不会发生!没有日志条目出现,上下文菜单中没有证据 - 什么都没有!即使完全重启 PC 也无济于事。

我当然注册了ShellEx\MyX\ContextMenuHandlersShellEx\IconHandler键,还有 Explorer 的...\Shell Extensions\Approved\,它们都指向我的CLSID. 我使用 Windows 7。

我在这里想念什么?

0 投票
2 回答
403 浏览

windows - 如何将菜单项(在右键菜单中)添加到所有文件(*。*)的资源管理器?

安装 Winrar 后,用户右键单击文件,会出现一个新的 mune 项目:“添加到存档...”

如何为我的应用程序这样做?

0 投票
2 回答
979 浏览

windows - shell 扩展会导致我的程序崩溃吗?

我的公司构建了一个在 Windows XP 上运行的 MFC 应用程序。我们的一位客户报告了此应用程序在打开通用文件对话框以允许用户保存日志文件时发生的崩溃。

我们没有在我们的任何集成系统上观察到这种崩溃。客户向我们提供了一个故障转储,它显示该程序正试图从地址 160b2d48 处的一些不可访问的内存中读取。该地址似乎来自地址空间的代码部分,因为在其上方和下方加载了 DLL(15dc0000-16085000 和 160c0000-1611b000),但在该地址处没有加载任何内容。崩溃线程的堆栈如下:

在这个堆栈上没有来自我们应用程序的代码,结合上述证据,我怀疑发生崩溃是因为当我们的应用程序显示“保存”对话框时调用了一个 shell 扩展(可能是一个信息提示处理程序,给定堆栈跟踪),但是由于某种原因未在该过程中加载。

  • 我的假设合理吗?
  • 如果是这样,我应该如何去追踪负责任的外壳扩展?
0 投票
1 回答
2340 浏览

c# - 将选项卡添加到图像文件的默认属性窗口

我想在 Windows 7 中的图像文件的属性对话框中添加一个选项卡。

我有许多家庭图像,我想在窗口属性中使用选项卡查看每个图像的详细信息。

波斯日期中的“相机模型”、“拍摄日期”等详细信息。

如何才能做到这一点?

0 投票
0 回答
159 浏览

c++ - Windons Shell 扩展“属性描述架构”文件的正确编码是什么?

我有一个用于创建 Windows Shell 扩展的库包,特别是文件属性所需的代码。我需要我的项目支持 Unicode 文件和文本,因此我使用 Unicode 支持编译项目,但是当我使用 regsvr32 注册 dll 时,库包会自动生成 .propdesc 文件,但它似乎正在将文件写为UTF-16。当它这样做时,属性似乎没有正确注册到索引器。但是,如果我将我的 dll 编译为多字节而不是 Unicode,那么这个文件将以 ASCII 编码编写和注册,然后就可以工作了。

由于 .propdesc 文件是一个带有标头“UTF-8”的 XML 文档,我认为编码必须是 UTF-8,但我知道 Windows 并不总是尊重这个想法。那么有谁知道索引器是否会接受 UTF-16 格式的属性描述方案文件,还是只接受 UTF-8/ASCII 编码的文件?

0 投票
1 回答
1945 浏览

visual-studio - TFS 电动工具外壳扩展图标覆盖出现在不受源代码控制的文件/文件夹上

我正在运行带有 Visual Studio 2010 Professional 的 Windows XP Professional SP3。我最近安装了最新版本的 TFS 电动工具。刚才我发现shell扩展的图标覆盖出现在我团队项目的映射文件夹内的所有文件/文件夹上,包括那些不受源代码控制的文件/文件夹,例如日志文件、bin、调试、发布文件夹等。

当我右键单击这些文件夹时,我可以看到 TFS 上下文菜单。但是当我试图查看历史记录时,它显示一条错误消息,指出该项目“在您的工作区中找不到,或者您无权访问它”。

我使用了另一台连接到同一 TFS 服务器的 PC。我将同一个团队项目映射到本地文件夹。外壳扩展图标覆盖没有问题。那些不受源代码控制的文件/文件夹显示时没有 TFS 覆盖。

有谁知道如何解决这个问题?

0 投票
3 回答
2855 浏览

c++ - 使用 Windows 7 集成编写命名空间扩展

我是主题外壳扩展的新手,我正在寻找有关命名空间扩展的资源。我想编写一个支持 SFTP 的命名空间扩展,其中包含在资源管理器中像 FTP 一样浏览的所有选项。

我从 codeproject 阅读了 zengxi 的示例12,但它们编译不正确,而且似乎很旧。我认为也有很多变化,比如地址栏中的文件夹选择。

有人可以为我提供一些正确方向的资源或一些工作示例吗?

更新: 源是免费的,这一点很重要。这是一个非盈利项目。

目前,我在 MSDN 上找到了一个名为Explorer Data Provider Sample的好资源。这是最新的,并提供了一些别名Explorer Data ProviderShell Data Source. 还缺少拖放支持和支持协议链接的粘合剂。

对于将来的使用,最好找到一种方法将文件扩展名与shell data sourcezip 文件相关联。

0 投票
1 回答
415 浏览

c++ - 特定文件类型的外壳扩展注册

我可以成功地为 HKCR * 键下的所有文件类型注册我的 shell 扩展 dll,但是当我尝试为特定文件类型注册它时失败。

你知道问题可能是什么吗?

注册 .rgs 文件为:

0 投票
1 回答
372 浏览

c++ - 向虚拟文件添加属性

我正在开发基于此示例的资源管理器数据提供程序。我已经添加了拖放支持。现在我希望文件和文件夹可以按文件类型、大小或其他方式排序。问题似乎虚拟文件只有 name 属性,就像您在屏幕截图中看到的那样。

shell扩展截图

如何添加更多属性或列来对内容进行排序?

0 投票
1 回答
7023 浏览

c++ - 如何在 C++ 中编写 shell 扩展?

这似乎是一个常见问题,但经过一番搜索后,我并没有真正找到答案。这里有一篇文章:

http://www.codeproject.com/KB/shell/shellextguide1.aspx

但它适用于非常旧版本的 Visual Studio。我使用的是 VS 2008,所以说明和界面似乎与我所看到的不符。

我想使用 C++ 创建一个简单的 shell 扩展,为扩展名为 .GZ 的文件创建上下文菜单。右键单击这些文件时,我应该能够单击我的上下文菜单项并在代码中进行回调以对该文件执行某种操作。

其他上下文菜单项会执行一些操作,例如生成无模式对话框以在执行某些操作之前接受用户输入。

据我所见,ATL 用于此目的,但我从未使用过 ATL,因此所有对象类型和接口对我来说都非常混乱。如果我有适当的教程或文档可供阅读,那也不会那么糟糕。

谁能帮我吗?那里不是有某种教程不是 10 岁吗?