如果只知道文件扩展名,如何找到与之关联的(大小)图标呢?

ijianbo 架构师  2003-07-11 06:00:17
比如,给一个文件:test.txt ,就可以根据“txt”这个扩展名来获取与之关联的记事本的(大小)图标。!
用什么api呢?
谢谢!

...全文
95 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
boywang 2003-07-18
http://www.mvps.org/vbnet/index.html?code/toc/tocbytopic_f.htm
Retrieving an Associated 16x16 Icon Using SHGetFileInfo
不错的。
回复
ijianbo 2003-07-18
up
回复
ijianbo 2003-07-18
我解决了!
回复
ijianbo 2003-07-18
我用那个代码可以不行!我是想根据文件类型取得图标,不是根据具体的文件来获得。
现在,有很多软件如"WinZip" 能在它的文件列表中显示各类文件相关的图标(exe等可执行文件例外)。
注:是压缩包里的文件列表, 不是磁盘上已存在的文件。
SHGetFileInfo、ExtractAssociatedIcon等函数好象不能返回不存在的文件的图标. (如果根据不同的扩展名创建一个假文件, 获取图标后又删除, 未免太不专业了吧)能不能根据扩展名取得相关图标? 或其它方式?
回复
ijianbo 2003-07-17
问题现在不是通过某个实际存在的的文件来获得它的小(大)图标。现在只知道文件名(文件很可能不存在)和它的扩展名,如何根据它的扩展名来判断于之关联的小(大)图标,并得到他们?
回复
James0001 2003-07-12
SHGetFileInfo
回复
TechnoFantasy 2003-07-11
http://www.mvps.org/vbnet/index.html?code/toc/tocbytopic_f.htm
Retrieving an Associated 16x16 Icon Using SHGetFileInfo
回复
penglc 2003-07-11
思路: 从给出的文件中找到该文件的默认打开程序, 然后从该程序.exe或其主引用库.dll中获取图标。 下面只是从exe和dll获取图标的api.

Public Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long

说明:
判断一个可执行文件或DLL中是否有图标存在,并将其提取出来

返回值:
Long,如成功,返回指向图标的句柄;如文件中不存在图标,则返回零。如果nIconIndex设为-1,就返回文件中的图标总数

参数表:
hInst ---------- Long,当前应用程序的实例句柄。也可用GetWindowWord函数取得拥有一个窗体或控件的实例的句柄

lpszExeFileName - String,在其中提取图标的那个程序的全名

nIconIndex ----- Long,欲获取的图标的索引。如果为-1,表示取得文件中的图标总数
回复
ijianbo 2003-07-11
可以给点代码提示嚒?
回复
calmzeal 2003-07-11
查询注册表里相关项阿
如.txt
注册为txt files
然后再txt files里有它的详细信息
回复
发动态
发帖子
API
创建于2007-09-28

1456

社区成员

VB API
申请成为版主
社区公告
暂无公告