技术宅的结界

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

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 134|回复: 3
收起左侧

VB 获取任意文件默认图标

[复制链接]

2

主题

30

帖子

135

积分

用户组: 小·技术宅

UID
2285
精华
0
威望
0 点
宅币
105 个
贡献
0 次
宅之契约
0 份
在线时间
18 小时
注册时间
2017-2-25
发表于 2017-11-29 16:45:25 | 显示全部楼层 |阅读模式

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

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

x
[Visual Basic] 纯文本查看 复制代码
Private Type SHFILEINFO
    hIcon As Long                       '  out: icon
    iIcon As Long                       '  out: icon index
    dwAttributes As Long                '  out: SFGAO_ flags
    szDisplayName As String * 260       '  out: display name (or path)
    szTypeName As String * 80           '  out: type name
End Type
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
Public Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long

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

2

主题

30

帖子

135

积分

用户组: 小·技术宅

UID
2285
精华
0
威望
0 点
宅币
105 个
贡献
0 次
宅之契约
0 份
在线时间
18 小时
注册时间
2017-2-25
 楼主| 发表于 2017-11-29 16:55:12 | 显示全部楼层
有一个手误,里面的Path改为app.path & "\tmp." & t3,这里的t3为扩展名

984

主题

2143

帖子

5万

积分

用户组: 管理员

一只技术宅

UID
1
精华
197
威望
261 点
宅币
15807 个
贡献
30732 次
宅之契约
0 份
在线时间
1504 小时
注册时间
2014-1-26
发表于 2017-12-4 07:05:02 | 显示全部楼层
乘简 发表于 2017-11-29 16:55
有一个手误,里面的Path改为app.path & "\tmp." & t3,这里的t3为扩展名

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

点评

谢谢指出不足啊。。。  发表于 2017-12-5 13:39

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号|网站地图

GMT+8, 2018-4-26 00:17 , Processed in 0.083433 second(s), 17 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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