VB.net类未注册错误



我正在编写VB应用程序,但每当我运行应用程序时,我都会收到下面列出的错误:

"创建表单时出错。有关详细信息,请参阅Exception.InnerException。错误为:检索CLSID为{11219420-1768-11D1-95BE-00609797EA4F}的组件的COM类工厂失败,原因是以下错误:80040154类未注册(HRESULT中的异常:0x80040154(REGDB_E_CLASSNOTREG))。"

我已经尝试注册shell32.dll文件,我已经在注册表中查找条目{11219420-1768-11D1-95BE-00609797EA4F},但它不存在,我已经尝试为x86编译此应用程序。

Imports Shell32
Imports System.IO
Public Class frmIconChanger
    Dim sh As ShellLinkObject = New ShellLinkObject
    Private Sub btnBackupAndChange_Click(sender As Object, e As EventArgs) Handles btnBackupAndChange.Click
        For Each desktopIcon In My.Computer.FileSystem.GetFiles("C:Users" + getUserName().ToString + "Desktop")
            Dim fileExtension As String = Path.GetExtension(desktopIcon)
            If (fileExtension = ".lnk") Then
                MsgBox(sh.GetIconLocation(desktopIcon).ToString)
            End If
        Next
    End Sub
    Private Function getUserName() As String
        Return System.Environment.UserName.Trim
    End Function
End Class

其他信息:我使用的是Windows7 64位计算机。我有.Net 4.0及以前的版本,使用的是Visual Studio 2012。此外,我在我的项目中添加了shell32.dll作为参考。如果能为解决这一问题提供任何帮助,我们将不胜感激。

谢谢。

请参阅此链接"创建链接"。查看"C"代码并查找常量CLSID_ShellLinkIID_IShellLink

这些是类和接口所需的值。

另一个链接很有用:IShellLink接口

这应该是您需要的GUID:CLSID:="{00021401-0000-0000-C000-000000000046}"IID:="{000214F9-0000-0000-C000-000000000046}"

最新更新