### Windows快捷方式(.LNK)文件格式结构解析 Windows中的快捷方式是以`.lnk`为扩展名的特殊文件,它们可以指向程序、文件夹或任何其他类型的文件。本文将详细介绍`.lnk`文件的格式结构及其各个组成部分的功能与含义。 #### 1. 头部(Header) **Size:** 4 bytes **内容(Content):** 始终为`4C000000` **描述(Description):** 这是Windows识别该文件为快捷方式的标志。 **Size:** 16 bytes **内容(Content):** 快捷方式文件的GUID **描述(Description):** 目前的GUID为`01140200000000C0000000000046`。请注意,这个GUID在未来可能会发生变化。 **Size:** 1 dword **内容(Content):** 快捷方式标志 **描述(Description):** 用于标识`.lnk`文件的特定属性。具体含义见下文“快捷方式标志”部分。 **Size:** 1 dword **内容(Content):** 目标文件标志 **描述(Description):** 表示目标文件的状态标志。具体含义见下文“目标文件标志”部分。 **Size:** 1 qword **内容(Content):** 创建时间 **描述(Description):** 表示创建该快捷方式的时间戳。 **Size:** 1 qword **内容(Content):** 最后访问时间 **描述(Description):** 表示最后一次访问该快捷方式的时间戳。 **Size:** 1 qword **内容(Content):** 修改时间 **描述(Description):** 表示该快捷方式最后被修改的时间戳。 **Size:** 1 dword **内容(Content):** 文件长度 **描述(Description):** 如果目标是一个文件,则表示该文件的长度;如果目标不是文件,则值为0。此值在链接损坏时用于查找目标。 **Size:** 1 dword **内容(Content):** 图标编号 **描述(Description):** 如果设置了快捷方式标志位6,则此值表示使用哪个图标;否则,其值为0。 **Size:** 1 dword **内容(Content):** 显示窗口模式 **描述(Description):** 指定启动目标应用程序时传递的`ShowWnd`值。1:正常窗口,2:最小化,3:最大化。 **Size:** 1 dword **内容(Content):** 热键 **描述(Description):** 分配给此快捷方式的热键。 **Size:** 1 dword **内容(Content):** 保留 **描述(Description):** 始终为0。 **Size:** 1 dword **内容(Content):** 保留 **描述(Description):** 始终为0。 #### 2. Shell Item ID 列表(Shell ItemId List) 这部分包含了一个或多个Shell Item ID,用于表示目标位置的路径。每个ID都代表一个目录或者文件系统中的节点。 #### 3. 文件位置信息(File Location Info) 这一部分提供了目标文件的具体位置信息,包括磁盘驱动器号等。 #### 4. 描述(Description) 如果设置了快捷方式标志位2,则这一部分包含了对目标的描述文字。 #### 5. 相对路径(Relative Path) 如果设置了快捷方式标志位3,则这一部分包含了相对于当前目录的目标文件的相对路径。 #### 6. 工作目录(Working Directory) 如果设置了快捷方式标志位4,则这一部分包含了运行目标时所使用的默认工作目录。 #### 7. 命令行参数(Command Line Arguments) 如果设置了快捷方式标志位5,则这一部分包含了启动目标时传递给它的命令行参数。 #### 8. 图标文件名(Icon Filename) 如果设置了快捷方式标志位6,则这一部分包含了自定义图标的文件名。 #### 9. 额外信息(Additional Info) 这部分可能包含了更多的额外信息,例如环境变量设置等。 #### 快捷方式标志(Shortcut Flags) **Bit 0:** 如果设置,表示存在Shell Item ID列表。 **Bit 1:** 如果设置,表示目标是一个文件或目录。 **Bit 2:** 如果设置,表示存在描述。 **Bit 3:** 如果设置,表示存在相对路径。 **Bit 4:** 如果设置,表示存在工作目录。 **Bit 5:** 如果设置,表示存在命令行参数。 **Bit 6:** 如果设置,表示存在自定义图标。 #### 目标文件标志(Target File Flags) **Bit 0:** 如果设置,表示目标只读。 **Bit 1:** 如果设置,表示目标隐藏。 **Bit 2:** 如果设置,表示目标是一个系统文件。 **Bit 3:** 如果设置,表示目标是一个卷标签。(实际上不可能) **Bit 4:** 如果设置,表示目标是一个目录。 **Bit 5:** 如果设置,表示目标自上次备份以来已被修改。 通过以上介绍,我们可以看出`.lnk`文件不仅包含了目标的基本信息,还提供了丰富的附加功能,如自定义图标、命令行参数等。理解这些细节有助于我们更好地管理和利用这些快捷方式。
剩余13页未读,继续阅读
- 粉丝: 1
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助