Создайте пользовательский элемент контекстного меню правой кнопкой мыши с C # для всех ярлыков на рабочем столе (проводник Windows) - PullRequest
3 голосов
/ 08 сентября 2010

Проблема проста: у меня много ярлыков на рабочем столе, которые указывают на большое количество файлов, НО у меня также есть много ярлыков, которые указывают на каталоги, на которые указывают эти ярлыки.Я хочу удалить эту избыточность, просто добавив еще один пункт меню правой кнопки мыши для всех ярлыков (.lnk-файлов), который позволяет открывать explorer.exe в каталог, содержащий указанный файл.

Пока я обнаружил, как получитьЦель ярлыка и она работает, я нашел предложение о том, как добавить пункт меню в контекстное меню, вызываемое правой кнопкой мыши, но он не работает (я поместил ключ в HKCR * \ shellext \ ContextMenuHandlers с именем Test и установил базовое значение равным "cmd.exe "

Но это не работает, явно

какие-либо предложения?

Обновление 1: Как добавить значок в этот пункт меню?Какого размера должен иметь файл значков: 16x16 или 32x32?

заранее спасибо

1 Ответ

3 голосов
/ 08 сентября 2010

Перейдите к HKCR\lnkfile

Создайте новый ключ с именем "shell", а ниже создайте еще один ключ с именем, каким бы вы ни хотели, чтобы отображаемый текст был для вашего обработчика контекстного меню, я назвал мой "COMMAND".

Затем создайте еще один ключ ниже, который называется конкретно «команда», и задайте значение (по умолчанию) «cmd.exe», которое будет путем к вашей пользовательской команде.Не забудьте заключить его в кавычки, если вы собираетесь указывать на исполняемый файл с пробелами.

Таким образом, для этого примера конечный ключ заканчивается следующим образом:

HKCR\lnkfile\shell\COMMAND\command\

Добавьте значение (по умолчанию), упомянутое выше, и ваш тест будет работать нормально.

Дополнительно, вы можете использовать "% 1", чтобы указать полный путь к файлу .lnk, к которому обращается контекстное меню, снова не забудьте заключить его в кавычки, так как вы никогда не знаете, будет ли это файл с пробелами в его полном пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...