VB.net类未注册错误

时间:2013-02-04 08:12:07

标签: vb.net shell32 clsid

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

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

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

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

其他信息:我使用的是Windows 7 64位计算机。我有.Net 4.0和以前的版本,我在Visual Studio 2012中工作。此外,我在我的项目中添加了shell32.dll作为参考。任何帮助解决这个问题都将非常感激。

感谢。

1 个答案:

答案 0 :(得分:0)

请参阅此链接Creating Links。看一下“C”代码并查找常量 CLSID_ShellLink IID_IShellLink

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

此其他链接很有用:IShellLink interface

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