VB.net класс не зарегистрировано ошибка

Я нахожусь в процессе написания приложения VB, но всякий раз, когда я запускаю приложение, я получаю ошибку, перечисленную ниже:

"Произошла ошибка при создании формы. Подробности смотрите в Exception.InnerException. Ошибка: Не удалось получить фабрику класса COM для компонента с CLSID {11219420-1768-11D1-95BE-00609797EA4F} из-за следующей ошибки: 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

Дополнительная информация: Я нахожусь на Windows 7 64-битной машине. У меня есть.Net 4.0 и предыдущие версии, и я работаю в Visual Studio 2012. Также у меня есть shell32.dll, добавленный в качестве ссылки в мой проект. Любая помощь в решении этой проблемы будет принята с благодарностью.

Благодарю.

1 ответ

Ссылка на эту ссылку Создание ссылок. Взгляните на код "C" и найдите константы CLSID_ShellLink IID_IShellLink

Это те значения, которые вам нужны для класса и интерфейса.

Эта другая ссылка полезна: интерфейс IShellLink

Это должны быть необходимые GUID: CLSID:= "{00021401-0000-0000-C000-000000000046}" IID:= "{000214F9-0000-0000-C000-000000000046}"

Другие вопросы по тегам