vb.net - 32位 icon 带 ExtractAssociatedIcon

  显示原文与译文双语对照的内容
0 0

保存提取的icon 时,只有 8-bit 通道 icon 。 我如何获得 32位 icon? 下面是我使用的代码:

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

它正在返回这里 icon:

enter image description here

时间:原作者:3个回答

0 0

使用SHGetFileInfo查找最大的icon,也许如果你使用 SHIL_LAST 或者 SHIL_JUMBO ( 从 Windows Vista开始),你会发现 32位 颜色 icon 。 关于 SHIL_LASTSHIL_JUMBO的更多信息,你可以在这里找到

原作者:
...