找回密码
 加入
搜索
楼主: sanmoking

如何根据文件后缀名获取其系统关联的图标

 火... [复制链接]
发表于 2010-2-1 14:46:31 | 显示全部楼层
汉化的udf里有

评分

参与人数 1金钱 +20 收起 理由
sanmoking + 20 多谢

查看全部评分

 楼主| 发表于 2010-2-4 14:38:33 | 显示全部楼层
#Include
_WinAPI_ShellGetFileInfo

不过要是考虑上面那哥们的情况就不好说了
netegg 发表于 2010-1-30 13:25



    这个函数看半天没看明白怎么用的,本人编程白痴,大侠可否给写个简单的例子.用这个函数读取指定文件夹内所有文件图标显示到gui上.500论坛币酬谢.
发表于 2010-2-4 16:08:16 | 显示全部楼层
回复 16# sanmoking

先获取全文件名,然后只保留扩展名就行了
 楼主| 发表于 2010-2-4 16:57:37 | 显示全部楼层
回复 17# netegg


    我是说图标,不是扩展名....
发表于 2010-2-4 17:17:27 | 显示全部楼层
本帖最后由 afan 于 2010-2-4 17:28 编辑

回复 18# sanmoking


    很简单啊老大~
#include <GUIListView.au3>
#include <GUIImageList.au3>
#include <WinAPIEx.au3>
#include <WindowsConstants.au3>
#include <File.au3>

Dim $folder = FileSelectFolder('请选择目标文件夹', '', 2, @MyDocumentsDir)
If @error Then Exit (Msgbox(48, '退出', '没有选择文件夹,退出'))
Dim $a = _FileListToArray($folder, '*', 1)
If $a = 0 Then Exit (Msgbox(48, '退出', '没有选择文件夹,退出'))
Dim $Ext

GUICreate('MyIconGUI', 280, 400)
$ListView = GUICtrlCreateListView('', 10, 10, 260, 344, $LVS_NOCOLUMNHEADER)
_GUICtrlListView_InsertColumn($ListView, 0, '', 220)
$hImageList = _GUIImageList_Create(16, 16, 6)
_GUICtrlListView_SetImageList($ListView, $hImageList, 1)
$Button = GUICtrlCreateButton('退出', 105, 361, 70, 23)

For $i = 1 To $a[0]
        $Ext = $folder & '\' & $a[$i]
        $tSHFILEINFO = _WinAPI_ShellGetFileInfo($Ext, BitOR($SHGFI_ICON, $SHGFI_SMALLICON, $SHGFI_USEFILEATTRIBUTES))
        $hIcon = DllStructGetData($tSHFILEINFO, 'hIcon')
        _GUIImageList_ReplaceIcon($hImageList, -1, $hIcon)
        _GUICtrlListView_AddItem($ListView, $a[$i], $i -1)
        _WinAPI_FreeIcon($hIcon)
Next
GUISetState()

While 1
        $Msg = GUIGetMsg()
        Switch $Msg
                Case -3, $Button
                        ExitLoop
        EndSwitch
WEnd
发表于 2010-2-4 17:28:38 | 显示全部楼层
改了下,应该只要文件,不要文件夹……
 楼主| 发表于 2010-2-4 17:46:25 | 显示全部楼层
本帖最后由 sanmoking 于 2010-2-4 17:53 编辑

我测试了很多次,就是没有图标,我之前自己也写了这样的代码测试过....
不知道是哪里出错了,,,afan大用的哪个版本的au3?
 楼主| 发表于 2010-2-4 17:49:43 | 显示全部楼层
装了3.3.5.0,可以了
 楼主| 发表于 2010-2-4 17:50:04 | 显示全部楼层
回头转移到我的那个圆形快速启动工具里面....
 楼主| 发表于 2010-2-4 17:53:00 | 显示全部楼层
改了下,应该只要文件,不要文件夹……
afan 发表于 2010-2-4 17:28



    得寸进尺,能不能给写个显示大图标的代码/?....
发表于 2010-2-4 19:09:27 | 显示全部楼层
回复 18# sanmoking

你是我老大,我太佩服你了,你就不能自己写下代码呀,函数名都有。
afan同志多辛苦呀
发表于 2010-2-5 02:54:12 | 显示全部楼层
这个函数看半天没看明白怎么用的,本人编程白痴,大侠可否给写个简单的例子.用这个函数读取指定文件 ...
sanmoking 发表于 2010-2-4 14:38



    别忘了给 netegg 加500论坛币,我可分文不取,我是路过的。。。
  p.s,  函数方面最熟的非蛋蛋莫属了,翻译+整理的工作可不是一般人拿得下的
 楼主| 发表于 2010-2-5 09:56:28 | 显示全部楼层
别忘了给 netegg 加500论坛币,我可分文不取,我是路过的。。。
  p.s,  函数方面最熟的非蛋蛋莫 ...
afan 发表于 2010-2-5 02:54



    得寸进尺2,这样子获得的图标除了GUIImageList能用之外,还能怎么用,比如GUICtrlCreateIcon能用么,貌似我不会用...其实我就是想用到gui界面上.就那个圆形快速启动工具....

24小时评分限制,下午给两位每人1000,哈哈..不知道论坛限制最高评分不..
发表于 2010-2-5 10:33:53 | 显示全部楼层
能用是能用,在gui上创建一个gdi环境
发表于 2010-2-5 11:11:19 | 显示全部楼层
不错,学习了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-10 23:38 , Processed in 0.071514 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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