#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. Большая часть информации, которую я могу найти, кажется, устарела