当我尝试构建或运行程序时,很可能是一个非常明显的原因,它破坏了以下功能:
Public Function GetLnkTarget(lnkPath As String) As String
Dim shl = New Shell32.Shell()
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)
Try
Return lnk.Target.Path
Catch ex As Exception
Return Nothing
End Try
End Function
我得到的错误是:
System.InvalidCastException
HResult = 0x80004002
Message =无法将类型为“ System .__ ComObject”的COM对象转换为接口类型为“ Shell32.Shell”。此操作失败,因为具有以下错误的IID为“ {286E6F1B-7113-4355-9562-96B7E9D64C54}”的COM组件上的QueryInterface调用由于以下错误而失败:不支持此类接口(HRESULT的异常:0x80004002(E_NOINTERFACE)) 。
Source =管理员工具
任何有关如何进行此操作的反馈/想法都将非常棒!