Как передать путь к ярлыку (*.lnk) в приложение? Всем привет.
Есть приложение на C# и часть его функционала вызывается через кнопки контекстного меню Windows.
Т.е. работаем в проводнике или файловом менеджере, клацаем правой кнопкой мыши на файле, выбираем действие и получаем результат. Для этого я добавил в реестр раздел с подразделом "command", содержащий подобное значение:"C:\path_to_app\App.exe" "%1"
Таким образом запускается приложение и в качестве 1-го аргумента ему передается путь к выбранному файлу (с помощью "%1").
И всё бы хорошо, но если воспользоваться такой кнопкой на *.lnk файле (ярлыке), то в приложение передается не его путь, а путь к файлу, на который он указывает (shortcut's target). А мне нужен именно путь к ярлыку, выделив который я нажал на кнопку.
Есть ли какие-то варианты с редактированием подраздела "command" или чем-то другим, чтобы отправить приложению путь к ярлыку, а не к файлу, на который он указывает?

21 Авг 2019 в 06:24
288 +1
0
Ответы
1

Для передачи пути к ярлыку (*.lnk) в приложение вместо пути к файлу, на который он указывает, можно использовать специальные методы для работы с ярлыками в C#. Например, можно использовать класс Shell из пространства имен Microsoft.VisualBasic.FileIO.

Пример кода, который позволит получить путь к ярлыку (*.lnk):

using Microsoft.VisualBasic.FileIO;
string shortcutPath = @"C:\path_to_shortcut\Shortcut.lnk";
string targetPath = FileSystem.GetFileInfo(shortcutPath).TargetPath;

В данном примере переменной targetPath будет присвоен путь к файлу, на который указывает ярлык Shortcut.lnk. Теперь вы можете передать этот путь в ваше приложение вместо пути к ярлыку.

Надеюсь, это поможет вам решить вашу проблему. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.

20 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир