Jez*_*Jez 37 windows windows-7 shortcuts
一个.lnk
在Windows文件是打算成为一个快捷方式到另一个文件的实际文件。但是,我确实想查看.lnk
文件本身的内容。我发现这几乎是不可能的;无论我尝试什么,我的应用程序都会打开它指向的文件的内容(拖放到文本或十六进制编辑器、文件 | 从文本或十六进制编辑器打开等)
有什么方法可以告诉程序实际打开 .lnk 文件而不是它指向的文件吗?
and*_*415 20
为了编辑快捷方式,您显然需要先打开它,这证明很棘手。在某些情况下,您可以使用命令行参数强制程序加载快捷方式文件:
"X:\Path\to\program.exe" "X:\my shortcut.lnk"
Run Code Online (Sandbox Code Playgroud)
不过,是加载链接目标还是实际的快捷方式文件取决于程序。以下是一些支持开箱即用的免费十六进制编辑器的列表(无特定顺序):
打开对话框是
拖放否
XVI32 ,免费的 Hex Editor Neo , Tiny Hexer , wxHexEditor , Hex-Editor MX , Frhed
打开对话框否
拖放是
如果您无法加载快捷方式文件的内容,您可以打开命令提示符并将.lnk
文件重命名为不同的、不存在的扩展名,例如.lne
:
cd /d "X:\Folder\containing\shortcuts"
ren "my shortcut.lnk" "my shortcut.lne"
Run Code Online (Sandbox Code Playgroud)
如果您有多个文件,您也可以一次重命名所有文件:
ren *.lnk *.lne
Run Code Online (Sandbox Code Playgroud)
然后,您将能够像对待常规文件一样对待这些快捷方式。完成后,请确保将它们重命名以恢复其通常的功能。
快捷方式或外壳链接包含用于访问特定链接目标的元数据信息。它由 Windows shell 解析和解释。来自官方文档:
shell 链接结构存储对最终用户有用的各种信息,包括:
可用于启动应用程序的键盘快捷键。
描述性评论。
控制应用程序行为的设置。
存储在额外数据部分的可选数据。
快捷方式存储为二进制文件,无法使用标准文本编辑器进行编辑。一个典型的.lnk
文件在内部看起来像这样:
00000000 4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00 L...........À...
00000010 00 00 00 46 DC 03 00 02 20 00 00 00 C6 EF 52 BE ...FÜ... ...ÆïR¾
00000020 10 04 CA 01 C6 EF 52 BE 10 04 CA 01 60 45 8A 67 ..Ê.ÆïR¾..Ê.`EŠg
00000030 20 04 CA 01 00 9A 04 00 00 00 00 00 01 00 00 00 .Ê..š..........
Run Code Online (Sandbox Code Playgroud)
前二十个字节始终是以下字节:
4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00 00 00 00 46
Run Code Online (Sandbox Code Playgroud)
Vin*_*yak 16
我已经试过了,它在 Windows 8.1 上对我有用:
LNK
在记事本中打开文件:
Open
对话框中打开它们,记事本将打开EXE
文件指向的LNK
文件。LNK
在HxD 十六进制编辑器中打开文件:
File
→ Open
)像打开任何文件一样打开它们LNK
使用命令提示符打开文件:
LNK
文件的文件夹并键入命令:
TYPE SHORTCUTNAME.LNK
LNK
在几乎任何程序中打开文件:
PROGRAM_NAME.EXE "path to LNK file"
.lnk 文件的全部意义在于让 Windows 将其视为到另一个文件的链接,因此它应该很难编辑!
如果您描述了为什么要编辑它,也许会有所帮助。您可以通过右键单击并选择Properties来更改 .lnk 文件的设置。
如果你真的想编辑它,你需要一个特殊的工具。其中有一些,包括:
注意:我没有尝试过任何这些,只是在谷歌上搜索了它们。
更新:
不知道为什么我之前没有想到这一点,但您可以通过 PowerShell 编辑属性。从Stack Overflow 上的这个先前的答案:
Copy-Item $sourcepath $destination ## Get the lnk we want to use as a template
$shell = New-Object -COM WScript.Shell
$shortcut = $shell.CreateShortcut($destination) ## Open the lnk
$shortcut.TargetPath = "C:\path\to\new\exe.exe" ## Make changes
$shortcut.Description = "Our new link" ## This is the "Comment" field
$shortcut.Save() ## Save
Run Code Online (Sandbox Code Playgroud)
由于它使用的是 Shell COM 对象,因此您也可以使用 WSH 甚至 Office 中的 VBA 来执行此操作!
归档时间: |
|
查看次数: |
12242 次 |
最近记录: |