C # — Получить путь к исполняемому файлу из файла Office Windows 10 .lnk

#c# #registry #lnk

#c# #реестр #lnk

Вопрос:

Я пытаюсь получить путь к исполняемому файлу из файла Office .lnk для Windows 10.

например ,

Путь ссылки — C:ProgramDataMicrosoftWindowsStart Меню ПрограммыWord 2016.lnk

Путь к исполняемому файлу — C:Program ФайлыMicrosoft OfficeOffice16WINWORD.EXE

Вещи, которые я пробовал:

 Shell shell = new Shell();
Folder folder = shell.NameSpace(pathOnly);
FolderItem folderItem = folder.ParseName(filenameOnly);
if (folderItem != null amp;amp; folderItem.IsLink)
{
      Shell32.ShellLinkObject link = (Shell32.ShellLinkObject)folderItem.GetLink;
      return link.Path;
}
 

И

 IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell(); //Create a new WshShell Interface
IWshRuntimeLibrary.IWshShortcut link = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(file);
string path = link.TargetPath;
 

Похоже, что пути хранятся в реестре по адресу ComputerHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionApp PathsWinword.exe
Но некоторые ключи сильно отличаются от имени файла lnk, поэтому я не уверен, как бы я связал их.

У кого-нибудь есть какие-нибудь идеи?

N.B. Большая часть информации, которую я могу найти, кажется, устарела