私はこのコードを見つけました:
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 デスクトップ リンクを追加すると、次のようになります。
C:\Windows\Installer\{...}\SkypeIcon.exe
これに対する修正はありますか?