netegg 发表于 2010-2-1 14:46:31

汉化的udf里有

sanmoking 发表于 2010-2-4 14:38:33

#Include
_WinAPI_ShellGetFileInfo

不过要是考虑上面那哥们的情况就不好说了
netegg 发表于 2010-1-30 13:25 http://www.autoitx.com/images/common/back.gif


    这个函数看半天没看明白怎么用的,本人编程白痴,大侠可否给写个简单的例子.用这个函数读取指定文件夹内所有文件图标显示到gui上.500论坛币酬谢.

netegg 发表于 2010-2-4 16:08:16

回复 16# sanmoking

先获取全文件名,然后只保留扩展名就行了

sanmoking 发表于 2010-2-4 16:57:37

回复 17# netegg


    我是说图标,不是扩展名....

afan 发表于 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
        $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

afan 发表于 2010-2-4 17:28:38

改了下,应该只要文件,不要文件夹……

sanmoking 发表于 2010-2-4 17:46:25

本帖最后由 sanmoking 于 2010-2-4 17:53 编辑

我测试了很多次,就是没有图标,我之前自己也写了这样的代码测试过....
不知道是哪里出错了,,,afan大用的哪个版本的au3?

sanmoking 发表于 2010-2-4 17:49:43

装了3.3.5.0,可以了

sanmoking 发表于 2010-2-4 17:50:04

回头转移到我的那个圆形快速启动工具里面....

sanmoking 发表于 2010-2-4 17:53:00

改了下,应该只要文件,不要文件夹……
afan 发表于 2010-2-4 17:28 http://www.autoitx.com/images/common/back.gif


    得寸进尺,能不能给写个显示大图标的代码/?....

netegg 发表于 2010-2-4 19:09:27

回复 18# sanmoking

你是我老大,我太佩服你了,你就不能自己写下代码呀,函数名都有。
afan同志多辛苦呀

afan 发表于 2010-2-5 02:54:12

这个函数看半天没看明白怎么用的,本人编程白痴,大侠可否给写个简单的例子.用这个函数读取指定文件 ...
sanmoking 发表于 2010-2-4 14:38 http://www.autoitx.com/images/common/back.gif


    别忘了给 netegg 加500论坛币,我可分文不取,我是路过的。。。
p.s,函数方面最熟的非蛋蛋莫属了,翻译+整理的工作可不是一般人拿得下的

sanmoking 发表于 2010-2-5 09:56:28

别忘了给 netegg 加500论坛币,我可分文不取,我是路过的。。。
p.s,函数方面最熟的非蛋蛋莫 ...
afan 发表于 2010-2-5 02:54 http://www.autoitx.com/images/common/back.gif


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

24小时评分限制,下午给两位每人1000,哈哈..不知道论坛限制最高评分不..

netegg 发表于 2010-2-5 10:33:53

能用是能用,在gui上创建一个gdi环境

stjie 发表于 2010-2-5 11:11:19

不错,学习了
页: 1 [2] 3 4
查看完整版本: 如何根据文件后缀名获取其系统关联的图标