Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Общие вопросы > Проверка, является ли файл ярлыком |
Автор: Keeper89 30.10.2009, 00:27 |
Доброго времени суток! Существует ли способ (кроме проверки расширения) определить, является найденный файл ярлыком или нет? Если нет, то : 1) есть ли точный список расширений ярлыков, т.к. кроме *.lnk бывают, например .*pif или *.url? 2) т.к. файлы находятся через FindFirst/FindNext, можно ли задать маску для поиска нескольких файлов? |
Автор: Beltar 30.10.2009, 09:08 | ||
С .lnk http://computer-forensics-lab.org/lib/data/92.pdf По остальным гугл в помощь.
Э-э. Мой компонент в примере, что вчера выкладывал имеет свойство Extensions:TStrings для работы только с нужными расширениями. |
Автор: bems 30.10.2009, 10:49 |
Ну это преждевременно. Вот тут http://msdn.microsoft.com/en-us/library/bb776891%28VS.85%29.aspx написано что приложение может зарегить своё расширение как ярлык добавив значение IsShortcut. |
Автор: Данкинг 30.10.2009, 11:07 |
А PIF - это с какой стати ярлык? Насколько я помню, PIF-файлы использовались в Win 3.1 для запуска DOS-приложений. ![]() |
Автор: Qu1nt 30.10.2009, 11:26 | ||
Как-то так.
Если накосячил - поправьте = ) |
Автор: bems 30.10.2009, 13:01 |
Данкинг, они и потом использовались. В линолиуме были, в 2к тоже кажись были. Ярлык тож. |
Автор: CodeMonkey 30.10.2009, 13:35 | ||
Спасибо за ссылку! |
Автор: Keeper89 31.10.2009, 21:38 |
Qu1nt, спасибо, действительно можно попробовать работать с файлом как с ярлыком; если не получится - значит не ярлык. ![]() |
Автор: Keeper89 2.11.2009, 22:31 |
Возник вопрос: почему данный метод относит к ярлыкам файлы *.bat и *.sys (другие расширения пока не попадались)? ![]() |
Автор: Rrader 3.11.2009, 18:32 | ||
Какой размер у этих файлов? Файлы 0 байт любого расширения считаются "правильными" ярлыками, если использовать этот метод. |
Автор: Keeper89 3.11.2009, 18:43 | ||
В точку ![]() Как их тогда можно отделить от ярлыков? |
Автор: Rrader 3.11.2009, 19:14 | ||||||
Просто проверяя размер файла. Кстати, в этом коде
второй параметр на самом деле не используется ![]()
Добавлено @ 19:20 Если мы пойдем в _LoadFromFile, то сможем там увидеть:
|
Автор: Keeper89 3.11.2009, 19:34 | ||
Т.е.
![]()
Учту. ;) |
Автор: Rrader 3.11.2009, 19:39 |
Да, все так. |
Автор: Keeper89 3.11.2009, 20:01 |
Спасибо. |
Автор: CodeMonkey 3.11.2009, 21:46 |
Как насчёт файла ShowMeTheMoney.lnk размером 0 байт? Это ярлык или нет? Ну, просто парадокс какой-то ![]() |
Автор: Qu1nt 3.11.2009, 22:14 |
Нет, это файл с расширением lnk. |