什么是Windows快捷方式的内部结构?

一台计算机中的3个硬盘:2个与Windows XP,1个与Windows 7,从它们的每一个顺序加载操作系统。

我发现在第一个XP中创build的一些工作快捷方式(不是全部)在第二个XP和Windows 7中不起作用(不能用于查看该快捷方式的对象)。

要理解为什么它不起作用,我在Windows 7中创build了相同的快捷方式,并在hex编辑器中打开这两个快捷方式的文件。

我发现它的结构是不同的,但我不知道如何比较它。

什么是Windows快捷方式的内部结构?

一些有用的快捷方式内容块的开始和结束字节是什么?

快捷方式( .lnk )文件格式是Ms属性,可以在这里看到。

但是,为了避免读取整个PDF文件,只能保存在快捷方式中的一个东西(可以通过使用十六进制查看器“查看”快捷方式来检查)是它所引用的(完整)目标路径(!重要的是:在创建时); 所以这是DriveLetter\ the_full_path

为了消除混淆,我建议玩在同一个驱动器上有快捷方式的目标。

所以,当切换硬盘驱动器( DriveLetter s – 又名C:指向不同的东西),假设你在其中一个创建了一个快捷方式: C:\shortcut.lnkC:DriveLetter分配给Windows启动的硬盘,我们称之为HDD1),它指向另一个HDD(和分区,我们称之为HDD2)的目标文件(例如E:\target.txt ); 当你切换硬盘(制作HDD2主引导盘)时, DriveLetter也将会改变,所以现在HDD2将是C:和HDD1 D: . 引入HDD3等问题会更复杂。

作为对我们问题的回答: .lnk文件不起作用,因为它们的目标不再存在。