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

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

...全文
178 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
boywang 2003-07-18
  • 打赏
  • 举报
回复
http://www.mvps.org/vbnet/index.html?code/toc/tocbytopic_f.htm
Retrieving an Associated 16x16 Icon Using SHGetFileInfo
不错的。
xjbx 2003-07-18
  • 打赏
  • 举报
回复
up
xjbx 2003-07-18
  • 打赏
  • 举报
回复
我解决了!
xjbx 2003-07-18
  • 打赏
  • 举报
回复
我用那个代码可以不行!我是想根据文件类型取得图标,不是根据具体的文件来获得。
现在,有很多软件如"WinZip" 能在它的文件列表中显示各类文件相关的图标(exe等可执行文件例外)。
注:是压缩包里的文件列表, 不是磁盘上已存在的文件。
SHGetFileInfo、ExtractAssociatedIcon等函数好象不能返回不存在的文件的图标. (如果根据不同的扩展名创建一个假文件, 获取图标后又删除, 未免太不专业了吧)能不能根据扩展名取得相关图标? 或其它方式?
xjbx 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,表示取得文件中的图标总数
xjbx 2003-07-11
  • 打赏
  • 举报
回复
可以给点代码提示嚒?
calmzeal 2003-07-11
  • 打赏
  • 举报
回复
查询注册表里相关项阿
如.txt
注册为txt files
然后再txt files里有它的详细信息

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧