Получить информацию о ярлыке Windows в C#

Метод GetShortcutInfo, показанный в следующем коде, получает информацию о ярлыке.

// Get information about this link.
// Return an error message if there's a problem.
private string GetShortcutInfo(string full_name, out string name, out string path, out string descr, out string working_dir, out string args)
{
name = "";
path = "";
descr = "";
working_dir = "";
args = "";
try
{
// Make a Shell object.
Shell32.Shell shell = new Shell32.Shell();
// Get the shortcut's folder and name.
string shortcut_path = full_name.Substring(0, full_name.LastIndexOf("\\"));
string shortcut_name = full_name.Substring(full_name.LastIndexOf("\\") + 1);
if (!shortcut_name.EndsWith(".lnk")) shortcut_name += ".lnk";
// Get the shortcut's folder.
Shell32.Folder shortcut_folder = shell.NameSpace(shortcut_path);
// Get the shortcut's file.
Shell32.FolderItem folder_item = shortcut_folder.Items().Item(shortcut_name);
if (folder_item == null)
return "Cannot find shortcut file '" + full_name + "'";
if (!folder_item.IsLink)
return "File '" + full_name + "' isn't a shortcut.";
// Display the shortcut's information.
Shell32.ShellLinkObject lnk = (Shell32.ShellLinkObject)folder_item.GetLink;
name = folder_item.Name;
descr = lnk.Description;
path = lnk.Path;
working_dir = lnk.WorkingDirectory;
args = lnk.Arguments;
return "";
}
catch (Exception ex)
{
return ex.Message;
}
}

Программа сначала создает объект Shell32.Shell для работы с оболочкой Windows. Он использует метод NameSpace этого объекта, чтобы получить объект Folder, представляющий папку, содержащую ярлык, представляющий интерес. Он использует коллекцию Items этого объекта, чтобы получить имя ярлыка и ShellLinkObject, представляющий ярлык. Из этого объекта метод, наконец, получает всю необходимую информацию.

Если вы посмотрите внимательно на картинку, вы увидите, что в этом примере ярлык ...

  • имя было "Signature"
  • описание было "Создает и редактирует текстовые документы со сложным
  • форматированием"
  • путь был путь к исполняемому файлу WordPad
  • рабочий каталог был моим рабочим столом
  • аргументы были "sig.txt"

Поэтому, когда я дважды щелкаю этот ярлык, он открывает Word в директории моего рабочего стола и открывает файл sig.txt, расположенный там.

Источник: csharphelper.com/blog/2012/01/get-information-about-a-windows-shortcut-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 4,67 из 5)
Adblock
detector