Ошибка класса 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

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

Спасибо.


person jbeverid    schedule 04.02.2013    source источник


Ответы (1)


Перейдите по этой ссылке Создание ссылок. Взгляните на код «C» и найдите константы CLSID_ShellLink IID_IShellLink

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

Еще одна полезная ссылка: интерфейс IShellLink

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

person Fabio    schedule 06.02.2013