3

我想获得快捷方式的标题,而不是文件名,不是描述,而是标题。如何得到它?

我已经学会从这里解析它的目标路径,如何在 c# 中解析 .lnk

但我没有找到任何方法来获得它的标题。


(来源:ggpht.com


(来源:ggpht.com

4

6 回答 6

2

正如 JRL 建议的那样,听起来您可能正在尝试获取链接指向的文件的标题。

如果您不想这样做,我建议您在XVI32等十六进制编辑器中打开这些 .lnk 文件之一。您大概可以从那里判断显示的中文名称是嵌入在 .lnk 文件中还是在其他地方。

如果它在其他地方,它可能是扩展文件属性。有一些源代码可能有助于检索该信息:扩展文件属性

如果碰巧它位于.lnk 文件中,我建议查看Windows 快捷方式规范以获取偏移信息等关于该数据位置的信息。

于 2009-04-30T04:40:01.023 回答
1

您可以使用最新版本的代码包中的属性系统 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;

于 2009-08-01T23:25:57.450 回答
1

在快捷方式目录中有一个Desktop.ini隐藏文件,Desktop.ini文件记录了快捷方式的字符串信息。

Desktop.ini 文件示例:

[本地化文件名]
Windows Update.lnk=@%SystemRoot%\system32\wucltux.dll,-1
默认程序.lnk=@%SystemRoot%\system32\sud.dll,-1
于 2009-04-30T07:58:13.093 回答
0

请定义“标题”。唯一听起来相关的属性是快捷方式的文件名、目标的文件名和 .lnk 文件的描述数据。

于 2009-04-29T04:24:31.367 回答
0

假设您指的是链接指向的文件的标题,而不是链接本身,并且您正在谈论 Windows,那么它是通过 NTFS 中的一个功能(替代流)完成的。您可以使用本文中的代码访问这些流。

于 2009-04-29T05:00:40.033 回答
-1

环顾四周创建快捷方式,看起来有很多与脚本对象跳过箍。但我错过了什么吗?如果您有快捷方式的路径,则名称应该与您在路径中找到的完全相同,而不是您必须查找的某些属性。

    Dim f As FileInfo = New FileInfo("C:\Name of shortcut.lnk")
    Dim title As String = f.Name.Replace(".lnk", String.Empty)
于 2009-04-29T04:02:35.740 回答