3

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

我的 Sharpshell 处理程序是

[ComVisible(true)]
[DisplayName("  Test")]
public class SyncedIconOverlayHandler : SharpIconOverlayHandler    
{
...
}

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

4

3 回答 3

1

不要占空间。取一个A或一个_(下划线)。

于 2016-01-13T07:46:36.027 回答
1

如您所知,您可以在名称上附加空格以将您的叠加层排序在其他之上 - 许多常见的图标叠加层都可以,例如 Google Drive、Dropbox 和 Tortoise SVN。

排序的优先级是因为只显示排序的前 15 个 - 自 Windows 95 以来 Windows 的限制!(今天在 Windows 10 中仍然如此)。例如,如果您正在与 Google Drive 竞争,并且您的两个图标叠加层都在前 15 位,您需要返回一个较低优先级的数字,您需要在 SharpShell 中通过覆盖来执行此操作GetPriority()。如果你们都返回相同的优先级,那么可能是排序后显示的那个?得考。。

像其他人建议的那样使用 _ 不是要走的路,它在空格之后排序。

你想要做什么 - 以编程方式指定名称而不是手动编辑注册表不是由 SharpShell 提供的 - 我有同样的问题,所以我要尝试添加一个这样做的属性,当我这样做时会更新它。

于 2016-05-10T03:27:52.597 回答
1

这不是关于创建覆盖,而是关于覆盖标识符列表中使用的排序顺序。要更改姓名的显示位置,您需要将标识符的名称更改为以 D 之前的字母开头,因为 DropboxExt1 是第一项。所以代替 os using " Test",给它另一个名字。

使用空间不是要走的路。一个好的方法是用下划线_字符开始名称,它将出现在字母 A 之前的列表中。这将确保如果添加任何未来的标识符,它仍然在开头。

于 2016-01-13T07:56:03.963 回答