我正在编写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作为参考。任何帮助解决这个问题都将非常感激。
感谢。
答案 0 :(得分:0)
请参阅此链接Creating Links。看一下“C”代码并查找常量 CLSID_ShellLink IID_IShellLink
这些是类和接口所需的值。
此其他链接很有用:IShellLink interface
这应该是您需要的GUID: CLSID:=“{00021401-0000-0000-C000-000000000046}” IID:=“{000214F9-0000-0000-C000-000000000046}”