Как изменить имя обработчика наложения иконок 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. введите описание изображения здесь

4 ответа

Не занимайте место. Возьмите A или _ (Подчеркнуть).

Речь идет не о создании наложения, а о порядке сортировки, который используется в списке идентификаторов наложения. Чтобы изменить место, где отображается ваше имя, вам нужно изменить имя вашего идентификатора, чтобы оно начиналось с буквы до D, поскольку DropboxExt1 является первым элементом. Так что вместо ОС с помощью " Test"Дайте ему другое имя.

Использование пробела - не лучший способ. Хороший подход для этого состоит в том, чтобы начать имя с подчеркивания _ символ, который появится в списке перед буквой A. это гарантирует, что он останется в начале, если будут добавлены какие-либо будущие идентификаторы.

Вы можете, как вы знаете, добавлять к имени пробелы, чтобы отсортировать наложение поверх других - многие обычные наложения значков делают, например, Google Drive, Dropbox и Tortoise SVN.

Приоритет сортировки заключается в том, что отображаются только первые 15 отсортированных номеров - ограничение в Windows, начиная с Windows 95! (И все же дело сегодня в Windows 10). Если вы конкурируете, например, с Google Диском, и оба ваших оверлея значков находятся в топ-15, вам нужно вернуть номер с более низким приоритетом, чем в SharpShell, переопределив GetPriority(), Если вы оба возвращаете один и тот же приоритет, возможно, будет показан последний вариант сортировки? Должен был бы проверить..

Использование _, как предлагали другие, - это не путь, а сортировка после пробела.

Что вы хотите сделать - указать имя программно, а не редактировать реестр вручную, не предоставляется SharpShell - у меня та же проблема, поэтому я собираюсь попытаться добавить attirbute, который делает именно это, обновит это, когда я это сделаю.

Как насчет использования

      [RegistrationName("  Test")]

Это работает для меня.

Другие вопросы по тегам