Несколько фреймворков и языков, похоже, имеют парсерные файлы lnk (C#, Java, Python, конечно, бесчисленные другие), чтобы добраться до их целей, свойств и т. Д. Я хотел бы знать, что такое общий подход к чтению lnk-файлов, если я хочу проанализировать lnk на другом языке, который не имеет указанной функции. Есть ли для этого API Windows?Общий подход к чтению файлов lnk
ответ
Официальный документ от Microsoft, описывающий формат файла lnk, отсутствует, но есть некоторые документы, которые имеют описание формата. Вот один из них: Shortcut File Format (.lnk)
Что касается API вы можете использовать IShellLink Interface
@Giorgi: На самом деле, там есть официальная спецификация LNK-файлов, по крайней мере, он утверждал так: http://msdn.microsoft.com/en-us/library/dd871305%28PROT.10%29.aspx Однако , по какой-то причине ссылка кажется мертвой, и после загрузки всего пакета документов (45Megs) (Application_Services_and_NET_Framework.zip), похоже, что он не содержит файл MS-SHLLINK.pdf.
Но неудивительно ли это?
Как только вы получили формат файла, не должно быть слишком сложно писать код для его чтения.
Этот документ можно найти по адресу http://download.microsoft.com/download/a/e/6/ae6e4142-aa58-45c6-8dcf-a657e5900cd3/%5BMS-SHLLINK%5D .pdf – Tobbe
Мне нравится «Раздел 4: Безопасность» много. – ZJR
Теперь это здесь: https://msdn.microsoft.com/en-us/library/dd871305.aspx?f=255&MSPPError=-2147217396. – deerchao
Использование WSH компоненты, связанные с кажется наиболее удобный вариант для чтения .lnk
файлов в большинстве языков на окна системы после XP. Вам просто нужен доступ к среде COM и создание экземпляра компонента WScript.Shell
. (помните, что при победе ссылки на Shell обычно относятся к explorer.exe
)
Следующий фрагмент, например. делает вещь на PHP: (PHP 5, используя объект COM)
<?php
$wsh=new COM('WScript.Shell'); // the wsh object
// please note $wsh->CreateShortcut method actually
// DOES THE READING, if the file already exists.
$lnk=$wsh->CreateShortcut('./Shortcut.lnk');
echo $lnk->TargetPath,"\n";
Это другой, вместо этого, делает то же самое на VBScript:
set sh = WScript.CreateObject("WScript.Shell")
set lnk = sh.CreateShortcut("./Shortcut.lnk")
MsgBox lnk.TargetPath
Большинство примеров в этой области являются написанные на VB/VBS, но они хорошо переводят на весь диапазон языков, поддерживающих взаимодействие COM и WSH в той или иной форме.
This simple tutorial может пригодиться, поскольку он перечисляет и иллюстрирует некоторые из наиболее интересных свойств файла .lnk
, кроме самых важных: TargetPath
. Это:
WindowStyle
,Hotkey
,IconLocation
,Description
,WorkingDirectory
Просто используйте LNK файл парсер на J.A.F.A.T. Архив проекта криминалистического анализа проекта.
См lnk-parse-1.0.pl на http://jafat.sourceforge.net
Там не кажется, не имеют никаких зависимостей. Синтаксис прост, и файл ссылок становится простым текстом в стандартном выпуске и может использоваться в Linux.
Это старый пост, но вот мой C реализация # для обработки LNK, который обрабатывает Целые SPEC
https://github.com/EricZimmerman/Lnk
подробнее и инструмент командной строки здесь
http://binaryforay.blogspot.com/2016/02/introducing-lecmd.html
Я думаю, было бы неплохо добавить описание и образец кода на эту первую страницу проекта. – NoOne
- 1. Хороший подход к чтению файлов изображений в C++
- 2. Лучший подход к чтению кода Scala DSL?
- 3. Общий подход к process.nextTick
- 4. Swift Общий подход к NSCoding
- 5. Общий подход к отсутствующим DLL
- 6. Лучший подход к чтению данных из нескольких таблиц
- 7. Общий подход к поиску индекс элемента
- 8. Общий подход к решению программных упражнений?
- 9. Общий подход к NSManagedObjectContext в многопоточном приложении
- 10. Общий подход к дизайну таблицы ресурсов
- 11. Наилучший подход к загрузке файлов
- 12. Подход к многопоточной обработке файлов
- 13. Рекурсия последовательность - общий подход
- 14. Meteor 1.4 - Общий подход к файловой системе +/общественная деятельность
- 15. Общий подход для подписи файлов, отличных от PE
- 16. Лучший подход: хороший подход к файлу синхронизации файлов на Github
- 17. нарушение доступа к чтению C++
- 18. Linq to xml: общий подход
- 19. Функциональный подход к разбору файлов в Python
- 20. Лучший подход к проблемам преобразования файлов
- 21. C# подход к картографированию входных файлов динамически
- 22. Нужна помощь в редактировании файлов .lnk?
- 23. Что такое хороший общий подход к написанию инструмента обновления
- 24. Общий подход к cURL с страницами ASPX - нужна помощь
- 25. Есть ли общий подход к перечислениям в перечислениях?
- 26. Как использовать файлы cshtml с durandal - Общий подход к контроллеру?
- 27. Общий подход к изменению экземпляра журнала в Django
- 28. Общий подход к редактированию UITableViewCell в новом представлении
- 29. Общий подход по темам и синхронизации
- 30. Лучший подход к хранению, записи и чтению большого набора данных метеорологических данных
К сожалению вы приходилось так долго ждать щедрости. Это мой первый вопрос о щедрости, и я думал, что награждение было автоматическим с принятием. Вот ваша награда! – MPelletier
Официальный PDF-файл Microsoft - http://msdn.microsoft.com/en-us/library/dd871305.aspx. (Кроме того, ваша ссылка сейчас не работает) – ninMonkey