注册 登录
编程论坛 VFP论坛

VFP“结构类型”应用,PE资源表---图标

吹水佬 发布于 2022-11-02 22:05, 2170 次点击
VFP“结构类型”应用,PE资源表---图标

相关帖:https://bbs.bccn.net/viewthread.php?tid=510323&extra=&page=1

提取windows图标的问题,当时用WinAPI搜索了一下,发现搜出来的图标并不
全面,用GDI+导出来好象大都也是32*32或16*16的格式,头脑有点发麻了,是
不是没用对劲?

既然图标是放在PE文件里的,那就从PE文件着手,直接从PE文件中提取出来,果然
真有不少,同一款图标从256*256到16*16也有10个规格的。

用VFP来解释PE文件也不容易,尤其图标是存放在PE资源表的。PE资源表的数据结构
算是比较复杂,使用了不少结构类型数据。通常VFP面对结构类型数据比较难读懂难
理解。

想起较早前写过VFP“结构类型”的东东,当时只是纸上谈兵,没有实战过。这次就
用他上阵试试刀。主要用他来达到两个目的:

    1、实现数据结构链表,用独立模块来处理图标数据,避免用DBF,有待以后转业。
    2、读写内存结构块数据,方便获取PE各类结构块数据。

代码有点杂就不贴了,打包一起有兴趣的可以下来看看,有问题可以共同探讨。
代码只有与PE_ICON相关部份,主程序项目在:

...\PE_File\PE_Resource\PE_Icon\PE_Icon.pjx

测试最好先保留这个目录结构,测试环境:Win10 + VFP9

代码主要实现:浏览PE资源表的图标信息;提取PE资源表的图标数据,VFP直接
引用这些数据应用到image,无需使用ICO文件。

只有本站会员才能查看附件,请 登录


只有本站会员才能查看附件,请 登录


14 回复
#2
cssnet2022-11-02 22:38
粗粗看一遍,兴奋得就跟一夜睡了三四位失足妇女一般,乐得合不拢嘴!
忙不迭地赶上来致敬——
确实博大精深!佩服佩服!
#3
schtg2022-11-03 06:08
非常感谢!
#4
laowan0012022-11-03 08:03
高!大!上!
向吹版致敬
#5
hu9jj2022-11-03 08:54
厉害!
声明:我不是称赞楼主,而是称赞2楼的勇士
#6
sych2022-11-03 09:09
厉害了,吹版主,谢谢分享
#7
csyx2022-11-03 09:51
为何我的Win10,左边表格没有显示吹版截图上的图标列表信息?

知道了,手工选一次文件列表那个组合框就出来了

[此贴子已经被作者于2022-11-3 10:00编辑过]

#8
厨师王德榜2022-11-03 10:13
好帖,需要虚心学习学习.
#9
sam_jiang2022-11-03 11:43
管他用不用得着,先下了再说。
#10
吹水佬2022-11-03 12:07
以下是引用sam_jiang在2022-11-3 11:43:20的发言:

管他用不用得着,先下了再说。

这个应用目的只有一个:直接引用系统图标资源,也就是说程序使用的图标是从系统资源中获取,顶多也只能说表现得有点与windows近亲吧了,喜欢玩个性的应该就不感兴趣。

但从编程的角度来看,所用手法也许超出VFP的范围,有些概念VFP是没有的,如指针、结构、链表。

    PE(Portable Executable)是Windows操作系统中的核心文件格式,PE文件格式相对开放引起了广大计算机编程人员的兴趣。通过对PE格式的理解,程序员不仅可以了解操作系统加载可执行文件的过程,还可以学习到操作系统对进程和内存进行管理的相关知识。同时,通过一些技术手段,对PE文件实施变形或打补丁,还可以实现各种不同的应用,如汉化、加密解密、计算机安全、PE病毒;引用PE文件中的资源数据,如光标、位图、图标等;通过导入表了解程序使用了那些API,通过导出表了解程序给用户提供了那些API;等等。了解和掌握PE文件格式,通过对PE文件进行编程,解决各种与PE文件有关的问题。

有兴趣的话可以深入探讨一下。
#11
jiazhefish2022-11-03 21:07
膜拜大神
#12
qhczdy2023-02-25 18:29
谢谢分享
#13
pvm20002023-02-26 07:54
感谢分享
#14
zhken2023-02-26 20:43
#15
aqyejun2023-02-27 08:50
学习了
1