问题标签 [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 回答
2779 浏览

c# - .NET Windows Explorer 扩展来浏览像 .zip 这样的文件?

我为带有 .mpq 扩展名的存档类型制作了一个浏览器程序,该文件在暴雪游戏中被广泛使用。
它就像一个资源管理器,但只探索 MPQ 档案中的文件。
现在,我们都知道 Windows 资源管理器是如何浏览 .zip 档案的,我很乐意让它打开具有如此丰富功能的 .MPQ 文件。

这甚至可能吗?所以有可能......
如果是这样,那怎么办?外壳文件夹...

有人可以给我举个例子吗?(C#) 我不能只将 C++ 翻译成 C#...

0 投票
2 回答
393 浏览

c# - 阻止为某些应用加载 C# Dll

大家好,

我有一个用 C# 编写的 shell 工具栏扩展。它只打算在 Windows Explorer 中使用,所以我想阻止 DLL 在 Internet Explorer 中加载。Windows 提供了大量仅在 IE 中加载扩展的方法,但似乎无法仅在资源管理器中加载。我知道在加载 DLL 后我可以在不同的地方执行各种检查,但理想的情况是完全阻止 DLL 加载。

现在,如果它是用 C++ 编写的,我会调用GetModuleFileNameDllMain检查可执行文件是否为 ,如果是iexplore.exe,则在附加时返回 false 。但是DllMain在 C# 中没有;微软不相信我们可以很好地使用加载程序锁。有没有其他方法可以选择性地阻止加载 C# DLL?

0 投票
3 回答
1986 浏览

windows - 如何在 Delphi 中编写 Windows Shell 命名空间扩展?

首先,对不起我的英语不好...

我想使用命名空间扩展 (NSE) 将虚拟文件夹添加到 Windows 资源管理器,并且我希望用户能够打开此虚拟文件夹以探索某些路径(例如,c:\test)。

如何使用 Delphi 做到这一点?谢谢。

0 投票
0 回答
74 浏览

windows - 修改原来的windows窗口

是否有可能以某种方式以编程方式修改原始 Windows 窗口?例如,添加一些按钮或类似的东西?

0 投票
1 回答
512 浏览

c - 如何实现基于文件类型的文件系统?

我想基本上做到这一点,这样你就不需要解压缩/解压缩任何文件。目前,我有一个 Dokan 文件系统,它可以在给定特定 zip 文件的情况下执行此操作,但我想知道如何使其适用于所有文件。意思是,我希望能够编译一个具有“fopen(”test.zip/1.jpg”、“rb”);”的程序。如果我在 shell 资源管理器中浏览,我认为 shell 扩展可以动态地将文件加载到文件系统中,但这对 fopen 示例没有帮助。有任何想法吗?

0 投票
1 回答
321 浏览

windows-shell - 需要写一个shell扩展

我需要为一个小的上下文菜单编写一个 shell 扩展。不幸的是,我重用了使用 .net 4.0 的开源代码

现在的问题是要求我不使用 .NET 4.0。

相反,有一种方法可以让我在注册表中创建一个条目,以便弹出 shell 扩展

我的要求是.... 1. shell 扩展上下文菜单应该只显示在 .txt、.csv、.xls 文件上。2.单击shell扩展后,我需要启动一个不同的进程,方法是将我们单击的文件的全名作为参数传递给进程。

0 投票
0 回答
291 浏览

shell-extensions - 使用托管代码的 Windows Shell 扩展

基本上每个关于 Windows Shell 扩展的 SO 线程(例如显示覆盖图标或扩展特定文件的资源管理器上下文菜单)都强烈建议不要为此目的使用托管代码。我完全理解 http://blogs.msdn.com/b/oldnewthing/archive/2006/12/18/1317290.aspx给出的推理

我的问题是,在 CLR4.0 环境中操作时,这些谨慎的话是否仍然成立。据我了解http://channel9.msdn.com/Shows/Going+Deep/CLR-4-Side-by-Side-In-Process-What-How-Why将依赖于不同 CLR 版本的托管代码加载到相同的进程(在本例中为 explorer.exe)在 CLR4.0 中得到更优雅的处理。

非常感谢您在这里的洞察力。

0 投票
2 回答
1425 浏览

c# - 使用 C# 在 Windows 中集成特定文件类型的 Shell

因此,我搜索了如何将您的应用程序(将其添加到右键菜单)与 C# 集成的指南,但我找不到仅针对特定文件类型的方法。我知道这是可能的,因为 WinRar 做到了。那么我该怎么做呢?

0 投票
3 回答
3871 浏览

c# - 调用 windows explorer shell 扩展

有没有办法以编程方式调用作为 shell 扩展的 DLL?我们使用在 Windows 资源管理器上注册 shell 扩展的软件,我需要调用其上下文菜单中可用的项目之一。我没有想要调用的软件源代码。

编辑

此上下文菜单仅在我在 Windows 资源管理器中选择 PDF 文件时出现。所以我需要调用它传递一个dll文件。

编辑

注册表信息:

[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}] @="PDFTransformer3.PDFTContextMenu.1"

[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\InprocServer32] @="C:\Program Files\ABBYY PDF Transformer 3.0\PDFTContextMenu.dll" "ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\ProgID] @="PDFTransformer3.PDFTContextMenu.1"

[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\可编程]

[HKEY_CLASSES_ROOT\CLSID{2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\VersionIndependentProgID] @="PDFTransformer3.PDFTContextMenu"

编辑

是否可以ShellExecuteEx使用我想要的动词(不是默认动词)调用?如果是这样,我如何调用我想要的动词(使用 DLL)?

那就是我想调用PDF文件的动词:

在此处输入图像描述

0 投票
2 回答
1443 浏览

delphi - 循环通过 IContextMenu

如何遍历 IContextMenu 的所有项目和子项目并列出所有可用动词?到目前为止,我从 JCL 中提取了这个工作代码:

此代码工作正常,它显示上下文菜单。我需要对其进行调整,以便它可以列出(可能是日志文件)所有菜单和子菜单动词。

编辑

为了澄清让我们假设我有这个上下文菜单:

在此处输入图像描述

我想记录这样的事情:

项目 动词

打开=打开
属性=属性
发送到=
发送到发送到蓝牙=xxx

编辑

如果有人有另一种获取动词或通过显示文本调用项目的方法,我也将不胜感激。