Russian Qt Forum

Qt => Общие вопросы => Тема начата: Joss от Сентябрь 24, 2009, 19:14



Название: [Решено] LNK (LINK-файлы) как работать с ярлыками Windows
Отправлено: Joss от Сентябрь 24, 2009, 19:14
Друзья,

есть ли у кого опыт работы с ярлыками (lnk-файлами)?
Мне нужно получить путь к приложению, на который указывает ярлык и я столкнулся со странностью:

1. Есть ярлыки, в которых не прописан абсолютный путь к приложению, а только относительный. Причем, библиотека Qt работает неверно, функция QFile::symLinkTarget возвращает путь к иконке (которая расположена в другом файле) вместо пустой строки (когда не прописан путь к приложению).
2. В MSDN в интерфейсе IShellLink нет способа получить Relative Path. Установить его мы можем, вызвав SetRelativePath, а получить нет. Я не вижу такой функции. Но это еще не вся проблема.
3. Оказывается есть ярлыки, в которых вообще не прописаны пути, ни абсолютные, ни относительные, хотя Windows их как-то запускает, и судя по всему, после запуска, прописывает в ярлык относительный путь. Вопрос как Windows это делает?

Т.е. задача получения Relative Path вроде бы может быть решена вручную, если парсить lnk-файл, а вот если он там не прописан, как быть?

Заранее благодарен за советы....


Название: Re: LNK (LINK-файлы) как работать с ярлыками Windows
Отправлено: Joss от Октябрь 29, 2009, 15:18
1. Первый пункт занесли в Qt баг-трекер.
2. По второму есть метод Resolve(), но он не пригодился.
3. По третьему, надо использовать msi (к сожалению, в mingw нет его):
http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/2df18f93-77d8-4217-94a1-6cbe5333a6c4/


Название: Re: [Решено] LNK (LINK-файлы) как работать с ярлыками Windows
Отправлено: ритт от Декабрь 30, 2009, 13:07
номерочек баги в студию, пожалуйста...


Название: Re: [Решено] LNK (LINK-файлы) как работать с ярлыками Windows
Отправлено: Joss от Декабрь 30, 2009, 13:20
QTBUG-5005