Hi this is a small bit of code I made to get the exe path and file from a shortcut, it may need tidying up a bit but I try it on a few shortcuts and seems to work
anyway comments and suggestions welcome.

vbnet Code:
  1. Imports System.IO
  2. Imports System.Text
  3.  
  4. Public Class Form1
  5.  
  6.     Public Function GetShortCutLink(ByVal Source As String) As String
  7.         Dim br As BinaryReader
  8.         Dim Bytes(2048) As Byte
  9.         Dim sb As New StringBuilder()
  10.  
  11.         If Not File.Exists(Source) Then
  12.             Throw New FileNotFoundException
  13.         End If
  14.  
  15.         'Open shortcut file for reading.
  16.         br = New BinaryReader(File.OpenRead(Source), Encoding.ASCII)
  17.         'Read 2048 bytes into bytes array.
  18.         Bytes = br.ReadBytes(Bytes.Length)
  19.         br.Close()
  20.  
  21.         For Counter As Integer = 100 To Bytes.Length - 1
  22.             'Check for :\ and
  23.             If Bytes(Counter) = 58 And Bytes(Counter + 1) = 92 And Bytes(Counter - 2) <> 47 Then
  24.                 Counter = (Counter - 1)
  25.                 Do Until Bytes(Counter) = 0
  26.                     'Build string.
  27.                     sb.Append(Chr(Bytes(Counter)))
  28.                     'INC Counter
  29.                     Counter += 1
  30.                 Loop
  31.                 Exit For
  32.             End If
  33.         Next Counter
  34.         'Return shortcut link.
  35.         Return sb.ToString()
  36.  
  37.     End Function
  38.  
  39.     Private Sub cmdGetLink_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGetLink.Click
  40.         Try
  41.             'Try and get link.
  42.             Dim sLink As String = GetShortCutLink("C:\out\data\Easy GIF Animator Pro 5.2.lnk")
  43.  
  44.             MessageBox.Show(sLink, "Link",
  45.                 MessageBoxButtons.OK, MessageBoxIcon.Information)
  46.         Catch ex As Exception
  47.             MessageBox.Show(ex.Message, "Error",
  48.                             MessageBoxButtons.OK, MessageBoxIcon.Information)
  49.         End Try
  50.     End Sub
  51. End Class