问题标签 [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 投票
2 回答
1244 浏览

selecteditem - 所选文件的外壳扩展名

有没有办法知道在 Windows 资源管理器中选择了哪个文件?我一直在看这里发布的教程Idiots guide to ...但描述的操作是:

徘徊

语境

菜单属性

拖放

我想知道是否有在选择文件时调用的方法。例如创建文件的缩略图视图。

谢谢。

0 投票
3 回答
487 浏览

shell-extensions - Shell 扩展 - 虚拟文件创建

我想创建一个仅驻留在内存中的文件...在查看一些文档时,我看到了使用 shell 扩展作为虚拟文件的建议。我不确定这是一个可行的解决方案,但我想知道

  1. 这是一个好方法(或者我应该使用 ramdisk 代替)
  2. 哪里是开始阅读它的好地方

注意:这是在 Windows 平台上

0 投票
4 回答
381 浏览

windows - 与 Windows Shell 集成

好的,

我想创建一个位于文件菜单中的 Windows shell 扩展,就像“Tortorise SVN”菜单一样。

有谁知道我从哪里开始,一篇好文章,或者要实现哪些接口?

谢谢!

0 投票
1 回答
1257 浏览

windows - 像 GDrive 这样的驱动器的外壳扩展?

如何编写一个 shell 扩展来在虚拟驱动器中显示在线文件,就像 Gmail 驱动器一样?

0 投票
3 回答
3779 浏览

windows - Windows 注册表文件关联菜单

我最近(今天)开始从德尔福内部干预我的注册表。:) 一切正常,我的自定义文件类型现在用我的程序打开,但有 2 个问题我无法解决。

1)我想要从所有文件类型中“打开”的选项,所以我添加了

如果我使用 regedit 查看注册表,它肯定在那里,但是当我右键单击一个文件并选择打开时它不存在...

所以我然后添加了这个

这对每个文件都有效,但选项位于顶部,带有“打开”和“编辑”。我有点希望它像大多数程序一样出现在菜单小节中......我意识到我需要使用 shellext,但我不明白这些如何与上下文菜单处理程序一起工作的结构......我已经学会了所有无论如何,我已经阅读了注册表......我知道 shellext 的名称稍后会出现在“。*”之后,但至于大乱码键的含义,我不知道。

0 投票
2 回答
1578 浏览

windows - 在 Vista (IShellFolder) 中调试 shell 扩展时出现问题

我使用 ATL (Visual Studio 2008) 创建了一个 Windows Shell 扩展。它具有以下模块,每个模块都是一个单独的 ATL 简单对象,具有自己的 .rgs 文件用于注册:-

  1. IShellFolder/IShellView -> 用于 Windows 资源管理器中的虚拟驱动器
  2. IContextMenu/IShellExtInit -> 用于弹出菜单文件和文件夹
  3. IShellIconOverlayIdentifier - 在文件和文件夹上显示覆盖图标
  4. IShellPropSheetExt/IShellExtInit -> 用于文件和文件夹属性中的自定义属性页

以上在 WinXP 中工作正常,我能够在 WinXP 中调试这个 shell 扩展。但是当我切换到 Vista 时,我只会得到 (2) 和 (4) 的方法调用。该驱动器是在 Windows 资源管理器中创建的,但是当我单击它时不会调用底层方法。虽然当我右键单击时,我被调用(2),当我为文件或文件夹选择“属性”时,我进入了(4)的代码。

Vista上的(1)和(3)是否有一些我缺少的界面。我在 MSDN 上找不到有关为 Vista 编写 Shell 扩展的完整详细文档。我已经阅读了有关 shell 扩展的 CodeProject 文章。

0 投票
4 回答
13042 浏览

.net - ClassFactory 无法提供请求的类 0x80040111 错误:-2147221231

使用 Visual Studio 2008 时,我在尝试在 Visual Basic 中打开标准保存文件对话框时第一次遇到这种情况。到目前为止,我已经在无结果的搜索后解决了它。现在我发现任何会导致保存/打开对话框的操作(例如 ctrl-O)也会失败。我已经搜索了更多,但仍然不知道如何解决它。

我知道的东西:这不是 Visual Studio 错误,它显然可以发生在任何数量的其他应用程序中(这就是为什么搜索它很烦人)

它与 .NET 或 COM 相关,我尝试重新安装所有 .NET 却没有运气,而且我从来没有搞砸过 COM,我什至不知道它是什么。

有些东西丢失、放错了地方,或者可能是 DLL 版本问题。

我真的不想处理卸载 VS2008 或 MS Office(我发现建议的一个结果)或任何其他大型应用程序。

0 投票
1 回答
1389 浏览

c++ - C++:如何从快捷方式打开 IShellFolder 驱动器文件夹

我在快捷方式中使用以下命令在 Windows 资源管理器中打开我的虚拟驱动器。%SystemRoot%\Explorer.exe /e,::{MyExtension CLSID}

虚拟驱动器使用 IShellFolder 接口,是一个 ShellExtension。它有几个预定义的文件夹。问题是我可以使用上述语句直接在 Windows 资源管理器中打开虚拟驱动器,但无法直接打开其中一个文件夹。

此链接说明如何打开 IShellFolder http://msdn.microsoft.com/en-us/library/bb776817(VS.85).aspx#

但我不确定如何使用对象名参数 %SystemRoot%\Explorer.exe /e,::{MyExtension CLSID},objectname

0 投票
1 回答
563 浏览

shell-extensions - 如何在 shell 扩展中从外部调用 IShellFolder::EnumObjects

我创建了一个类似于 Google 的 GDrive 的 Windows Shell 扩展。现在我想向继承自 IShellView 的 ListView 添加不同的视图。添加了一个新的上下文菜单以显示 3 个视图(详细信息、小图标、大图标)。当使用上下文菜单更改视图时,需要刷新/创建当前窗口以显示更改后的视图。在我的 IShellFolder::EnumObjects 中,创建了一个新的 ListView 对象并自动调用 OnCreate。当我使用上下文菜单更改视图时,我也需要调用此方法。我想可能有一些像 SHChangeNotify() 这样的 API 可以自动所有 EnumObjects() 并且将使用更改后的视图创建一个新的 IShellView 窗口。

0 投票
2 回答
8581 浏览

c# - 外壳图标覆盖 (C#)

我需要一种方法来使用 C# 或 C++ 在 Windows XP/Vista 中为文件夹和文件创建图标覆盖?有什么例子吗?

谢谢,-肖恩!