0

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 を追加しています。この問題を解決するための助けをいただければ幸いです。

ありがとう。

4

1 に答える 1

0

リンクの作成を参照してください。「C」コードを見て、定数 CLSID_ShellLink IID_IShellLink を探します。

これらは、クラスとインターフェースに必要な値です。

この他のリンクは便利です: IShellLink インターフェイス

これは、必要な GUID である必要があります。

于 2013-02-06T20:34:18.263 に答える