易语言 从注册表获取图标句柄 支持路径或后缀名

本文介绍了一个通过读取Windows注册表来获取文件或文件扩展名对应图标的算法。该算法能够处理绝对路径和扩展名,从注册表中查找默认图标路径,并使用系统API ExtractIconA来提取图标。
.版本 2

.子程序 HW_GetIconFromReg, 整数型, , 返回图标句柄,用 DestroyIcon () 释放
.参数 PathOrExtension, 文本型, , 可以传入文件绝对路径或者扩展名
.局部变量 Extension, 文本型
.局部变量 KeyName, 文本型
.局部变量 DefaultIcon, 文本型
.局部变量 Path, 文本型, , , 文件路径
.局部变量 nIcon, 文本型, , , 图标索引
.局部变量 hIcon, 整数型

Extension = PathFindExtensionA (PathOrExtension)
.如果真 (Extension = “”)
    Extension = PathOrExtension
.如果真结束
KeyName = 取文本注册项 (#根类, Extension + “\”, )
.判断开始 (KeyName = “”)
    KeyName = “Directory”
.默认
    DefaultIcon = 取文本注册项 (#根类, KeyName + “\defaulticon\”, )
.判断结束

.判断开始 (DefaultIcon = “%1)
    .如果真 (PathFileExistsA (PathOrExtension) = 假)
        返回 (0)  ' //未找到
    .如果真结束
    Path = PathOrExtension
    nIcon = “0.判断 (DefaultIcon = “”)
    Path = “C:\Windows\System32\Shell32.dll”
    nIcon = “0.默认
    Path = 文本_取左边 (DefaultIcon,,)
    nIcon = 文本_取右边 (DefaultIcon,,)
.判断结束
返回 (ExtractIconA (0, Path, 到整数 (nIcon)))
' %SystemRoot%\System32\ 可以直接打开
' hIcon = ExtractIconA (0, Path, nIcon)
' DestroyIcon (hIcon)


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

V_admin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值