<p style="margin-left:0;text-align:justify;">在下载应用程序时,我们会发现一些特殊的EXE应用程序。当我们运行EXE程序时会同时下载或生成若干个其他应用程序,并自动运行。这个过程通常会以一种静默的方式悄悄地进行。我们将这一技术称之为EXE捆绑。之所以这样做,好的方面是简化程序下载安装的过程。坏的方面是一些流氓软件可以借此牟利,侵犯用户的选择权。本章介绍两种常用的EXE捆绑的实现方法。</p>
讯享网
本章学习知识概要:
资源捆绑
补丁捆绑
15.1 资源捆绑
是否还记得第七章资源表的内容?我们可以将其他文件以自定义资源的形式添加到EXE文件的.rsrc节区中。当然我们也可以将EXE文件中的资源文件释放到本地磁盘。如果释放的资源文件是一个EXE可执行文件,我们还可以自动运行这个EXE文件。本节我们将介绍EXE资源捆绑的方法。
本节必须掌握的知识点:
资源捆绑实现思路
补丁捆绑示例
15.1.1 资源捆绑实现思路
为了将多个文件以资源的形式添加到一个EXE文件中,我们需要编译一个EXE程序。编译时,以自定义资源的方式将要捆绑的文件添加到EXE的.rsrc资源节区。EXE程序的功能代码为:找到并释放资源节区指定的资源文件到磁盘指定目录,并自动运行该目录中的EXE可执行文件。
■实现EXE资源捆绑的步骤:
●编写EXE程序。
●添加资源文件。
●运行EXE程序,并释放资源文件。
●自动运行释放的可执行文件。
接下来我们将分步骤测试一些基本的功能模块。
■测试一
实验一百零三:测试执行多个进程的文件
![]()
示例程序设置了一个文件列表结构数组,并添加了3个文件,其中包含“notepad.exe”和“mspaint.exe”两个EXE文件,和一个配置文件“config.ini”。然后创建一个子线程执行两个EXE程序。
讯享网
■测试二
实验一百零四:遍历指定目录文件并执行其中的EXE文件
![]()
示例程序遍历指定目录文件,并执行其中的EXE文件。
●Resource.h
讯享网
●searchFile.rc
15.1.2 资源捆绑示例
■测试三
实验一百零五:资源绑定EXE文件
![]()
示例程序编译EXE宿主程序时,以自定义资源的方式捆绑了5个资源文件,其中包含helloworld.exe和notepad.exe两个可执行文件。当点击菜单项“释放文件(&R)…”时,在C盘根目录创建“C: est”目录,并将5个捆绑的资源文件释放到该目录。当点击菜单项“遍历文件(&O)…”时,遍历“C: est”目录下的所有文件,在窗口显示资源文件信息,并自动执行两个可执行文件。
●bindResource.c
讯享网
●Resource.h
●bindResource.rc
讯享网
●运行结果:

图15-1 资源捆绑EXE文件

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/196437.html