问题标签 [sharpshell]

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 投票
0 回答
468 浏览

c# - 如何开发一个shell ext。在资源管理器窗口中添加一个新按钮?使用 SharpShell

设想

我目前的操作系统是Windows 8.1 x64,并计划在不久的将来升级到Windows 10 x64。

我经常需要在资源管理器中切换以显示隐藏文件。

为了解决这个问题,我通过注册表添加了一个简单的上下文菜单项,然后当我右键单击文件夹的背景时,我的项目可以切换资源管理器的隐藏文件可见性。


问题

现在我想让这个功能更易于访问,以避免需要额外的点击来打开上下文菜单。我想将该功能集成为 shell 扩展,以便在每个资源管理器窗口右下角的默认按钮附近添加一个按钮:

在此处输入图像描述


问题

C#或者最好是VB.Net中,最好使用SharpShell库,如何创建一个简单的 shell 扩展,在其中添加一个带有图标的按钮?

请注意,单击按钮时,我需要某种参考来识别单击按钮的当前窗口。


研究

我已经阅读了下面这个网址中针对初学者的所有官方文章,但是我没有找到任何关于在资源管理器中集成“插件”的文章(仅关于信息提示)。

我知道一些特定应用程序的存在,例如QTTabBar,它通过 shell 扩展在资源管理器中添加功能,例如菜单和按钮,它在这里有一个C#源代码,我会分析它,但它是一个非常巨大的 VS 解决方案,我的主要语言是VB.Net,我很不清楚作者在源代码中做了什么来在资源管理器中添加“插件”。

编辑

其资源管理器集成的AWM实际窗口管理器)示例:

在此处输入图像描述

QTTabBar的资源管理器集成:

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
313 浏览

c# - .NET 使用 Sharpshell 和 FileSystemWatcher 创建图标覆盖(与 Dropbox 和 google drive 相同的行为)

我想在我的同步应用程序中创建图标覆盖(我想要与 Dropbox 和谷歌驱动器相同的行为);我已经使用 FileSystemWatcher 观看了本地更改,但我无法根据文件状态添加图标覆盖;我阅读了这篇文章,但找不到与我的场景相关的任何内容:http: //www.codeproject.com/Articles/545781/NET-Shell-Extensions-Shell-Icon-Overlay-Handlers 我想根据以下内容更改图标文件状态

0 投票
3 回答
681 浏览

c# - 如何将注册表中的 Sharpshell 图标覆盖处理程序名称更改为在名称前包含空格?

我使用sharpshell作为这个示例创建了图标覆盖处理程序:- http://www.codeproject.com/Articles/545781/NET-Shell-Extensions-Shell-Icon-Overlay-Handlers

我的 Sharpshell 处理程序是

我的问题是我想更改处理程序名称以在名称前包含空格,因此,我的处理程序将优先于 Dropbox 和 Google Drive。 在此处输入图像描述

0 投票
1 回答
322 浏览

c# - 如何更改 SharpShell 图标覆盖处理程序名称以包含注册表中的空间以优先于 Dropbox 和其他程序?

我想在处理程序名称上更改 Sharpshell 图标,因此,我的处理程序将优先于其他处理程序。我注意到 Dropbox 和 Google Drive 在其处理程序名称中使用空格,因此它们优先于我的sharpshell 处理程序,但我无法在我的sharpshell 处理程序名称中添加空格,因为c# 编译器不允许类名中有空格;另外,我添加了属性 DisplayName 但什么也没发生。

在此处输入图像描述

0 投票
1 回答
267 浏览

c# - .NET 如何从 Sharpshell COM 扩展与 Windows 窗体应用程序通信?

我有一个 Windows 窗体应用程序(同步应用程序,如 DropBox 和 Google Drive)以及我使用 SharpShell 创建的 COM 组件(Shell 扩展),它向 Windows 文件系统添加了功能。我的问题是 COM 如何与 Windows 窗体应用程序通信。例如

当我在我的 Windows 窗体应用程序中创建一个单例时,COM 扩展看不到这个 Singleton(null),因为我认为它是一个不同的过程。我的问题是我想要 COM 进程(C# 代码)如何与 Windows 窗体应用程序(也是 c# 代码)通信的最佳实践,或者我希望两个应用程序都能看到我的单例。

0 投票
2 回答
1356 浏览

c# - SharpShell 服务器 .dll 未签名

我需要开发一个引用其他一些自定义程序集的 Shell 上下文菜单扩展...我不想为这些自定义程序集分配一个强名称键!

我遵循的指南使用 SharpShell 项目,并说明了如何签署(但没有解释为什么)程序集......这是我的问题:如果我签署我的最终 .dll,那么我在项目构建期间会遇到很多错误阶段,因为我的项目引用的某些程序集没有强命名(“引用的程序集没有强名称”)。

一般来说,在谷歌上搜索 C# Shell Extension 实现,我发现所有最好的教程都在最终程序集上签名......它是强制性的吗?

不签署程序集 ServerManager.exe 将返回此错误:“ The file 'XYZ.dll' is not a SharpShell Server”。

0 投票
2 回答
2132 浏览

c# - 通过右键单击桌面或目录背景创建一个 Shell ContextMenu

名为SharpShell的 .NET Shell 扩展框架非常棒;我开发了一个右键单击文件 Shell ContextMenu “非常容易”,可以同时选择文件和目录。

现在我想通过右键单击空白空间(即在桌面上或我在文件夹内的白点上)来开发一个 Shell ContextMenu。仍然可以使用 SharpShell 吗?还是我需要转向不同的解决方案?...在​​第二种情况下...您有什么建议?

谢谢

0 投票
1 回答
239 浏览

c# - 部署时面临的 Sharpshell 问题

在客户端机器上部署sharpshell时,我遇到了一些问题,如果有人可以帮助我,我真的很高兴。配置如下

  1. Sharpshell 2.2.0
  2. 64位操作系统
  3. 框架 4.5.1
  4. VC++ 2010 可再发行版
  5. 部署包基于 x86 架构构建

一旦我浏览了错误日志,就会发现正在发生错误“无法初始化 Nativebridge”,这是一个很棒的库工作,就像开发环境中的魅力一样。

机器配置 错误日志

0 投票
1 回答
201 浏览

c# - 如何通过sharpshell为回收站添加shell上下文菜单?

如何通过sharpshell为回收站添加shell上下文菜单?

可能吗?

在此处输入图像描述

0 投票
0 回答
74 浏览

windows - PropertySheet ListView 在 Windows 10 上的行为不同

我使用 SharpShell 创建了一个 PropertySheet。PropertySheet 使用 ListView,其视图设置为 Details 并启用 Groups 以显示一些信息。

PropertySheet 在 Windows 7 中的工作方式与预期完全一样,但是我现在已移至 Windows 10 (x64),尽管可以看到 PropertySheet 并且它包含的信息是正确的,但 ListView 行为不端。它根本不显示组,标题使用默认的“块”样式而不是像往常一样的“Aero”样式,最能说明问题的是页面没有重绘,即我必须单击它们的条目才能被画下来。

我已经在一个简单的 winforms 应用程序中使用完全相同的设置测试了 ListView,它的行为正确。

我已经使用 Spy++ 来比较现有的(Windows 的一部分)详细信息 PropertyPage(它也使用我想要的相同配置中的 ListView)。我发现设置标志的一些细微差别:

我创建了一个非常简单的 PropertySheet,以排除由原始 PropertySheet 的功能引起的任何问题。不幸的是,我得到了相同的结果。请参见下文(单击以强制重绘后,它应该类似于 Windows PropertySheet)。

点击重绘后测试PropertySheet的样子

在此处输入图像描述

我一直无法在网上找到任何提及此问题或可能导致此问题的 Windows 10 中的设置。

如果有人能够提供帮助,我将不胜感激。谢谢