我正在编写一个 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
其他信息:我在 Windows 7 64 位机器上。我有 .Net 4.0 和以前的版本,并且在 Visual Studio 2012 中工作。我还在我的项目中添加了 shell32.dll 作为参考。任何解决此问题的帮助将不胜感激。
谢谢。