1

抽出されたアイコンを保存すると、8 ビットのチャンネル アイコンしかありません。32 ビット アイコンを取得するにはどうすればよいですか? 私が使用するコードは次のとおりです。

Public Sub LoadIcon()
   Dim path = My.Computer.FileSystem.SpecialDirectories.Desktop + "\icon\"
   Dim filePath As String = "С:/Windows/explorer.exe"
   Dim TheIcon As Icon = IconFromFilePath(filePath)
   If TheIcon IsNot Nothing Then
      Using stream As New System.IO.FileStream(path + "programicon.ico",       IO.FileMode.CreateNew)
         TheIcon.Save(stream)
      End Using
   End If
   PictureBox1.Load(path + "programicon.ico")
End Sub

Public Function IconFromFilePath(ByVal filePath As String) As Icon
    Dim result As Icon = Nothing
    Try
        result = Icon.ExtractAssociatedIcon(filePath)
    Catch
    End Try
    Return result
End Function

このアイコンを返しています:

ここに画像の説明を入力

4

1 に答える 1

0

shgetfileinfo を使用して最大のアイコンを見つけてみてください。SHIL_LASTまたはSHIL_JUMBO(Windows Vista 以降) を使用している場合は、32 ビット カラーのアイコンが見つかる可能性があります。との詳細についてはSHIL_LAST、こちらを参照しSHIL_JUMBOください

于 2013-07-25T11:51:52.823 に答える