找回密码
 加入
搜索
查看: 49491|回复: 13

[系统综合] 如何获取文件的图标

  [复制链接]
发表于 2014-1-22 10:49:26 | 显示全部楼层 |阅读模式
论坛上好像只有获取exe文件图标的帖子
可是我想获取txt,jpg,doc等各种文件的那个小图标,请问下有什么方法呀
 楼主| 发表于 2014-1-22 10:50:16 | 显示全部楼层
求高手指点啊
发表于 2014-1-22 10:52:58 | 显示全部楼层
这些信息都在注册表中,自己多琢磨下
发表于 2014-1-25 13:29:46 | 显示全部楼层
_WinAPI_ShellExtractAssociatedIcon
发表于 2014-1-25 14:04:03 | 显示全部楼层
[au3];#Include <APIConstants.au3>
#Include <GUIListView.au3>
#Include <GUIImageList.au3>
#Include <WinAPIEx.au3>

Opt('MustDeclareVars', 1)

Global $hForm, $Msg, $Button, $ListView, $hImageList, $hIcon, $Key, $Count = 1, $First = False
Global $tSHFILEINFO = DllStructCreate($tagSHFILEINFO)

Dim $Ext[101] = [0]

RegRead('HKCR\.x', '')

While 1
        $Key = RegEnumKey('HKCR', $Count)
        If @error Then
                ExitLoop
        EndIf
        If StringLeft($Key, 1) = '.' Then
                RegRead('HKCR\' & $Key, '')
                If Abs(@error) <> 1 Then
                        $Ext[0] += 1
                        If $Ext[0] > UBound($Ext) - 1 Then
                                ReDim $Ext[UBound($Ext) + 100]
                        EndIf
                        $Ext[$Ext[0]] = $Key
                EndIf
                $First = 1
        Else
                If $First Then
                        ExitLoop
                EndIf
        EndIf
        $Count += 1
WEnd

$hForm = GUICreate('MyGUI', 280, 391)

$ListView = GUICtrlCreateListView('', 10, 10, 260, 344, BitOR($LVS_DEFAULT, $LVS_NOCOLUMNHEADER), $WS_EX_CLIENTEDGE)
_GUICtrlListView_SetExtendedListViewStyle($ListView, BitOR($LVS_EX_DOUBLEBUFFER, $LVS_EX_INFOTIP))
_GUICtrlListView_InsertColumn($ListView, 0, '', 238)
$hImageList = _GUIImageList_Create(16, 16, 5, 1)
_GUICtrlListView_SetImageList($ListView, $hImageList, 1)
$Button = GUICtrlCreateButton('OK', 105, 361, 70, 23)

For $i = 1 To $Ext[0]
        $hIcon = _WinAPI_ShellExtractAssociatedIcon($Ext[$i], 1)
        _GUIImageList_ReplaceIcon($hImageList, -1, $hIcon)
        _GUICtrlListView_AddItem($ListView, $Ext[$i], $i - 1)
        _WinAPI_DestroyIcon($hIcon)
Next

GUISetState()

While 1
        $Msg = GUIGetMsg()
        Switch $Msg
                Case -3, $Button
                        ExitLoop
        EndSwitch
WEnd
[/au3]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2014-2-6 22:22:32 | 显示全部楼层
谢谢netegg的分享哈
发表于 2014-2-9 15:26:14 | 显示全部楼层
解决方案太犀利了
发表于 2014-2-24 17:46:42 | 显示全部楼层
学习了,谢谢5楼
发表于 2014-2-25 15:31:42 | 显示全部楼层
netegg 发表于 2014-1-25 14:04


我为什么都是错误啊
发表于 2014-2-25 18:35:03 | 显示全部楼层
netegg的代码很犀利~!
发表于 2014-2-26 12:53:31 | 显示全部楼层
回复 5# netegg
蛋神果然很是牛叉啊!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 22:26 , Processed in 0.103608 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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