如何调用系统关联图标?
本帖最后由 omegabomb 于 2009-8-11 12:07 编辑比如一个txt文件,我想读取现在他关联的哪个图标,应该怎么读取?
我并不想在shell32.dll中提取,而是调用现在系统和这个后缀关联的图标,可能安装了一个软件之后,就换了一个图标,那就调用新的图标,这应该如何做到? 写了个: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 学习一下。。 多谢afan再次解惑,拿回去消化整合一下 还是有点不对,图标不对应啊 本帖最后由 afan 于 2009-8-6 15:40 编辑
貌似这个id不能同注册表的写法。
如果读取注册表的dll文件图标的id为正数,则写 -(id+1) ,(不加-也行,不过最后一个图标必须加)比如
GUICtrlSetImage(-1,"shimgvw.dll",-(3+1))
如果为负数则去掉‘-’
页:
[1]