如何在注册表中更改Sharpshell Icon Overlay Handler名称以包含名称前的空格?

时间:2015-12-22 15:25:11

标签: c# shell-extensions sharpshell

我使用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。 enter image description here

3 个答案:

答案 0 :(得分:1)

不要占用空间。取 A _ (下划线)。

答案 1 :(得分:1)

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

使用空间不是一条路。一个好的方法是使用下划线_字符开始名称,该字符将显示在字母A之前的列表中。如果添加了任何将来的标识符,这将确保它保持在开头。

答案 2 :(得分:1)

如您所知,您可以在名称后面添加空格,以便将叠加层排在其他位置之上 - 许多常见的图标叠加层可用于Google Drive,Dropbox和Tortoise SVN。

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

正如其他人所建议的那样使用_不是的方法,它会在空格后进行排序。

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