我做了一个explorer.exe的克隆,带有树视图和列表视图等。
现在我需要处理点击.lnk文件的操作,所以我需要.lnk文件目标路径。。
您可以使用WshShell Object
:
只要您想在本地运行程序、操作注册表内容、创建快捷方式或访问系统文件夹,就可以创建WshShell对象。
并使用其CCD_ 2方法:
创建新的快捷方式,或打开现有的快捷方式。
生成的WshShortcut
对象包含一个TargetPath
属性,这就是您要查找的内容。
示例:
Dim shell = CreateObject("WScript.Shell")
Dim path = shell.CreateShortcut(path_to_your_link).TargetPath
我会试试;
Public Shared Function GetLnkTarget(lnkPath As String) As String
Dim shl = New Shell32.Shell()
' Move this to class scope
lnkPath = System.IO.Path.GetFullPath(lnkPath)
Dim dir = shl.[NameSpace](System.IO.Path.GetDirectoryName(lnkPath))
Dim itm = dir.Items().Item(System.IO.Path.GetFileName(lnkPath))
Dim lnk = DirectCast(itm.GetLink, Shell32.ShellLinkObject)
Return lnk.Target.Path
End Function
您需要引用COM对象;Microsoft Shell控件和自动化。