VB.NET/C#代码访问链接(lnk)文件的目标路径会产生一些错误的路径 [英] VB.NET / C# code to access target path of link (lnk) files produces some wrong paths

查看:336
本文介绍了VB.NET/C#代码访问链接(lnk)文件的目标路径会产生一些错误的路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我找到了以下代码:

    Public Shared Function GetLnkTarget(ByVal 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

它适用于某些.lnk文件,但是例如,如果我添加我的Skype.exe桌面链接,它将产生:

It works for some .lnk files, but for example if I add my Skype.exe desktop link it produces:

C:\Windows\Installer\{...}\SkypeIcon.exe

是否有此解决方法?

推荐答案

尝试一下:

Function GetTargetPath(ByVal FileName As String)

    Dim Obj As Object
    Obj = CreateObject("WScript.Shell")

    Dim Shortcut As Object
    Shortcut = Obj.CreateShortcut(FileName)
    GetTargetPath = Shortcut.TargetPath


End Function

    Private Sub Teste_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

MsgBox(GetTargetPath("C:\ProgramData\Microsoft\Windows\Start Menu\BitTorrent.lnk"))

'here you chose the location of .lnk file

End Sub

这篇关于VB.NET/C#代码访问链接(lnk)文件的目标路径会产生一些错误的路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆