Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.136.154.103] |
|
Сообщ.
#1
,
|
|
|
Привет всем, еслим б кто подсказал можноли и если да - то как работать с LNK-файлами не используя модули перечисленные в сабже (т.е. Get/SetPath, Get/SetArguments и т.п.) - вот собсно и весь вопрос...
|
Сообщ.
#2
,
|
|
|
Да, разбираемся с форматом lnk и сами делаем его парсинг, вытаскивая нужные параметры. Дам всё хранится прямо, без шифровки...
|
Сообщ.
#3
,
|
|
|
да, без шифровки оно-то видно, но эти ЛНК-файлы очень похожи на типизированные, как бы теперь узнать рекорд который туда пишется...
ну ладно - буду пробовать... |
Сообщ.
#4
,
|
|
|
Методом научного тыка... Посмотрел, посчитал, попробовал...
|
Сообщ.
#5
,
|
|
|
тыкать - это понятно, а эти мелкософтовцы (эт ж они изобрели ярлыки или все же
|
Сообщ.
#6
,
|
|
|
Формат закрытый, есть API которые дают полный контроль над LNK, а ежели хотите сами всё, то уже и разбираться прийдётся самим.
|
Сообщ.
#7
,
|
|
|
На C'ях чё-то подобное видел здесь: http://mail.gnu.org/archive/html/dotgnu-pn...2/msg00015.html
А в архиве в аттаче на иностранном языке(EN) есть также описание и ещё один вариант реализации на Си. Всё до безобразия просто, чтобы подогнать на Дельфи. Прикреплённый файлlnk_c.zip (4.01 Кбайт, скачиваний: 159) |
Сообщ.
#8
,
|
|
|
2startinger - спасиба - тока шото трудновато разбираться - в приложеном файле все как-то "может так а может и не так" - а по ссылке вообще минимум объяснений...
ну ладно и на этом спасибо - попробую разгрести это ... как-нибудь ... |
Сообщ.
#9
,
|
|
|
Посидел немного на выходных.
В Windows есть механизм, позволяющий создавать ссылки на достаточном низком уровне - Shell Links (IShellLink, IPersistFile). К сожалению написать работоспособный пример, на основе приведенного в Windows SDK, не получилось Чтобы Использовать это в Delphi вроде достаточно подключить uses ShlObj, ActiveX; По самому формату файлов (только для win - exe-.lnk, смотрел в Win98) Фаил содержит следующую информацию 1. указатель на приложение 2. указатель на рабочую папку 3. указатель с какого файла брать иконку и ее номер 4. Как отображать окно при старте приложения 5. Сочетание горячих клавиш для быстрого запуска //Далее идут номера в файле при просмотре в hex-режиме, начиная с 1-го. 3. значение 21-го поля определяет метод, откуда будет браться иконка и использование приложением ключей (то есть, напр. D:\Temp\a.exe \s - f). Возможные значения: 1B - линк создан командой "Создать ярлык" 13 - иконка из самого приложения 33 - иконка родная, в пути к приложению 53 - чужая иконка 73 - чужая иконка и есть ключи. 4. Отображение окна - 61-е поле Возможные значения: 01 - обычно 03 - свернуто в значок 07 - во весь экран 5. Горячие клавиши - 65 и 66: 65-е - это соответствующий Virtual Key Code клавиши (см. SDK). 66-е - дополнительная клавиша. Возможные значения: 00 - доп. клавиши нет 02 - ALT, 04 - Ctrl 06 - Alt+Ctrl и др. Также перед каждой строковой информацией (пути, ключи) за одно поле имеется длина строки в 16-ричной системе счисления, то есть ABC -> link-hex: 03 00 [ABC in hex] P.S. Забил смотреть дальше из-за того, что не факт, что ссылки в WinNT имеют тотже формат, и потому как имеются совершенно непонятные последовательности , которые для ссылок, имеющих одно функциональное значение, различны В инете нашел только две ссылки, которые уже были приведены. |
Сообщ.
#10
,
|
|
|
Цитата Zoobastik, 9.03.04, 02:41 В Windows есть механизм, позволяющий создавать ссылки на достаточном низком уровне - Shell Links (IShellLink, IPersistFile). Вроде автор как раз и хочет избежать вызов этих интерфейсов... |