找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 2770|回复: 6

VB 获取任意文件默认图标

[复制链接]
发表于 2017-11-29 16:45:25 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
  1. Private Type SHFILEINFO
  2.     hIcon As Long                       '  out: icon
  3.     iIcon As Long                       '  out: icon index
  4.     dwAttributes As Long                '  out: SFGAO_ flags
  5.     szDisplayName As String * 260       '  out: display name (or path)
  6.     szTypeName As String * 80           '  out: type name
  7. End Type
  8. Public Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long
  9. Public Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long

  10. Private Function 获取文件类型图标(t3 As String) As Long
  11.     Dim FI As SHFILEINFO
  12.     Dim ts As String
  13.    
  14.     ts = App.Path & "tmp." & t3     '自动生成临时文件路径与文件名
  15.     Open ts For Binary As #1    '创建文件
  16.     Close #1                    '关闭文件,此时产生空文件
  17.    
  18.     SHGetFileInfo ts, 0, FI, Len(FI), &H100     '获取类型图标
  19.    
  20.     Kill ts                     '删除文件
  21.    
  22.     'DrawIcon Picture1.hdc, 0, 0, FI.hIcon  '可以用此函数显示出来
  23.     获取文件类型图标 = FI.hIcon             '返回句柄,接下来可以用DrawIcon来显示
  24. End Function
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-11-29 16:55:12 | 显示全部楼层
有一个手误,里面的Path改为app.path & "\tmp." & t3,这里的t3为扩展名
回复 赞! 靠!

使用道具 举报

发表于 2017-12-4 07:05:02 | 显示全部楼层
乘简 发表于 2017-11-29 16:55
有一个手误,里面的Path改为app.path & "\tmp." & t3,这里的t3为扩展名

然而你并没有把DeleteObject也声明了。。这个图标是需要销毁的。

点评

谢谢指出不足啊。。。  发表于 2017-12-5 13:39
回复 赞! 靠!

使用道具 举报

发表于 2020-7-2 19:14:03 | 显示全部楼层
不错  好东西
回复 赞! 靠!

使用道具 举报

发表于 2020-7-9 17:20:21 | 显示全部楼层
来支持一下
回复 赞! 靠!

使用道具 举报

发表于 2021-4-10 16:45:06 | 显示全部楼层
这个Kill ts,我以为把文件也删除了。
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-23 17:49 , Processed in 0.035072 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表