我想获得快捷方式的标题,而不是文件名,不是描述,而是标题。如何得到它?
我已经学会从这里解析它的目标路径,如何在 c# 中解析 .lnk
但我没有找到任何方法来获得它的标题。
(来源:ggpht.com)
(来源:ggpht.com)
我想获得快捷方式的标题,而不是文件名,不是描述,而是标题。如何得到它?
我已经学会从这里解析它的目标路径,如何在 c# 中解析 .lnk
但我没有找到任何方法来获得它的标题。
(来源:ggpht.com)
(来源:ggpht.com)
正如 JRL 建议的那样,听起来您可能正在尝试获取链接指向的文件的标题。
如果您不想这样做,我建议您在XVI32等十六进制编辑器中打开这些 .lnk 文件之一。您大概可以从那里判断显示的中文名称是嵌入在 .lnk 文件中还是在其他地方。
如果它在其他地方,它可能是扩展文件属性。有一些源代码可能有助于检索该信息:扩展文件属性
如果碰巧它位于.lnk 文件中,我建议查看Windows 快捷方式规范以获取偏移信息等关于该数据位置的信息。
您可以使用最新版本的代码包中的属性系统 API:
(系统中的所有 670 多个属性都可以使用简单的属性访问器访问)
http://code.msdn.microsoft.com/WindowsAPICodePack
我知道您当前需要的只是有限的 lnk 文件标题。使用上面的库,示例代码可能如下所示:
ShellLink myLink = ShellObject.FromParsingName("c:\somepath\myLink.lnk");
字符串标题 = myLink.Properties.System.Title.Value;
// 这就是它的指向... string target = myLink.Properties.System.TargetParsingPath.Value;
在快捷方式目录中有一个Desktop.ini隐藏文件,Desktop.ini文件记录了快捷方式的字符串信息。
Desktop.ini 文件示例:
[本地化文件名] Windows Update.lnk=@%SystemRoot%\system32\wucltux.dll,-1 默认程序.lnk=@%SystemRoot%\system32\sud.dll,-1
请定义“标题”。唯一听起来相关的属性是快捷方式的文件名、目标的文件名和 .lnk 文件的描述数据。
假设您指的是链接指向的文件的标题,而不是链接本身,并且您正在谈论 Windows,那么它是通过 NTFS 中的一个功能(替代流)完成的。您可以使用本文中的代码访问这些流。
环顾四周创建快捷方式,看起来有很多与脚本对象跳过箍。但我错过了什么吗?如果您有快捷方式的路径,则名称应该与您在路径中找到的完全相同,而不是您必须查找的某些属性。
Dim f As FileInfo = New FileInfo("C:\Name of shortcut.lnk")
Dim title As String = f.Name.Replace(".lnk", String.Empty)