2013-02-04 71 views
0

我在寫一個VB應用程序的過程,但每當我運行應用程序,我得到下列錯誤:VB.net類未註冊的錯誤

「出錯創建表單見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作爲參考。任何幫助解決這個問題將不勝感激。

謝謝。

回答

0

請參考此鏈接Creating Links。查看「C」代碼並查找常量 CLSID_ShellLink IID_IShellLink

這些是您需要的類和接口的值。

這另一條鏈路是有用的:IShellLink interface

這應該是你需要的GUID: CLSID:= 「{00021401-0000-0000-C000-000000000046}」 IID:=「{000214F9-0000- 0000-C000-000000000046}「