几种框架和语言似乎都有lnk文件解析器(C#,Java,Python,无数其他的解析器),以获得它们的目标,属性等。我想知道什么是读取lnk文件的一般方法,如果我想用另一种没有上述功能的语言解析lnk。有没有一个Windows API?阅读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 2011-08-23 06:28:53
我很喜欢“第4部分:安全”。 – ZJR 2011-11-19 23:27:59
现在这里是:https://msdn.microsoft.com/en-us/library/dd871305.aspx?f=255&MSPPError=-2147217396。 – deerchao 2016-05-13 06:31:55
使用WSH相关的组件似乎是最方便的选择读取后XP的Windows系统上的大多数语言.lnk
文件。您只需访问COM环境并实例化WScript.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
只需在J.A.F.A.T.使用LNK文件分析器法医分析工具档案项目。
见lnk-parse-1.0.pl在
似乎没有没有依赖性。语法很简单,链接文件变为标准输出中的简单文本,并可在Linux上使用。
这是一个古老的职位,但这里是LNK处理我的C#实现的用于整个规范这里
https://github.com/EricZimmerman/Lnk
更多信息和命令行工具
http://binaryforay.blogspot.com/2016/02/introducing-lecmd.html
我认为这将是很好的添加一些说明和示例代码到第一个项目页面。 – NoOne 2016-02-29 20:40:27
- 1. 阅读一般的文件
- 2. 阅读一个.pdb文件
- 3. 阅读文件只一次
- 4. 阅读文件
- 5. 阅读文件
- 6. 阅读文本文件的jQuery/Javascript .get方法
- 7. 阅读大对象文本文件的最快方法
- 8. 改变阅读文件的方向?
- 9. 阅读格式不一致的文本文件的建议方法
- 10. 阅读文本文件法国字符
- 11. 有没有使用javascript创建lnk文件的方法
- 12. 阅读XML与阅读CSV文件java
- 13. iPhone - 在单独的文件上的一般方法
- 14. 阅读一个文本文件android
- 15. 阅读Ruby中文件的第一行
- 16. 阅读python文件的最后一行
- 17. 阅读一个非常大的文件
- 18. 阅读文件的一行C++
- 19. 阅读一个Unicode字符的文件
- 20. 在春天阅读txt文件的方法
- 21. Scripting.FileSystemObject的和..lnk文件
- 22. 阅读库方法定义
- 23. 阅读Java文件
- 24. 阅读SVG文件
- 25. Matlab文件阅读
- 26. 阅读文件Android
- 27. 阅读文件夹
- 28. 阅读txt文件
- 29. 阅读Excel文件
- 30. Python阅读文件
对不起你必须等待这么长时间的赏金。这是我的第一个赏金问题,我认为奖励是自动接受的。这是你的奖励! – MPelletier 2010-08-13 15:26:43
Microsoft官方PDF是http://msdn.microsoft.com/en-us/library/dd871305.aspx。 (加上您的链接现在已损坏) – ninMonkey 2015-01-19 01:01:20