找回密码
 加入
搜索
查看: 1406|回复: 5

如何调用系统关联图标?

[复制链接]
发表于 2009-8-6 10:56:25 | 显示全部楼层 |阅读模式
本帖最后由 omegabomb 于 2009-8-11 12:07 编辑

比如一个txt文件,我想读取现在他关联的哪个图标,应该怎么读取?
我并不想在shell32.dll中提取,而是调用现在系统和这个后缀关联的图标,可能安装了一个软件之后,就换了一个图标,那就调用新的图标,这应该如何做到?
发表于 2009-8-6 11:36:39 | 显示全部楼层
写了个:
While 1
        $a = InputBox("输入后缀名", '请输入要查询图标的后缀名', "", " m", 300, 120) 
        If @error = 1 Then Exit
        If StringInStr($a, '.') <> 0 Then $a = StringTrimLeft($a, 1)
        If $a <> '' Then
                $b = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.' & $a, '')
                If $b = '' Then MsgBox(48, '错误', '没有注册此后缀名 ' & '"' & $a & '"  ')
                If $b <> '' Then ExitLoop
        EndIf
WEnd
$c = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Classes\' & $b & '\DefaultIcon', '')
If $c <> '' Then
        MsgBox(64, '图标路径:', $c)
Else
        MsgBox(48, '图标路径:', '此后缀名不含默认图标')
EndIf
发表于 2009-8-6 12:29:03 | 显示全部楼层
学习一下。。
 楼主| 发表于 2009-8-6 13:30:03 | 显示全部楼层
多谢afan再次解惑,拿回去消化整合一下
 楼主| 发表于 2009-8-6 14:55:45 | 显示全部楼层
还是有点不对,图标不对应啊
发表于 2009-8-6 15:20:06 | 显示全部楼层
本帖最后由 afan 于 2009-8-6 15:40 编辑

貌似这个id不能同注册表的写法。
如果读取注册表的dll文件图标的id为正数,则写 -(id+1) ,(不加-也行,不过最后一个图标必须加)比如
GUICtrlSetImage(-1,"shimgvw.dll",-(3+1))
如果为负数则去掉‘-’
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-3 03:00 , Processed in 0.068897 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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