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}"