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