Visual Basic shell32.shell

时间:2018-12-13 00:35:07

标签: vb.net shell32

当我尝试构建或运行程序时,很可能是一个非常明显的原因,它破坏了以下功能:

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 =管理员工具

任何有关如何进行此操作的反馈/想法都将非常棒!

0 个答案:

没有答案