在本系列的上一篇中,
我们给出了这个工具的具体的思路。
得到了很多朋友的反馈!
综合朋友的意见,
在没有改变工具原理的基础上
我对这个程序做了升级
如下图:
如你所见,
现在这个打包工具可以打包dotNet2.0 3.5 4
乃至所有在注册表中添加过注册表项的应用程序
下面我们就开始分析安装工具(也就是上面你看到的那个图片)
--------------------------
入口函数:
好吧,入口函数很简单,只是创建了一个窗体,并注册了窗口过程函数
-----------------------------
窗口过程
在这个过程函数里
接收到的每个消息都执行了一个或几个函数
那么,我们就一个函数一个函数的讲
-------------------------------------------------------
窗口初始化消息里
我们默认选中了dotNet4的单选按钮
---------------------------------------------------------
四个单选按钮的单击事件
设置了文本框的内容,
并记录了当前选中的是哪个单选按钮
------------------------------------------------------------
选择文件
把选中的文件路径赋值给相应的文本框
--------------------------------------------------------------------
从资源中读取宿主程序,并按指定的文件名,释放到当前目录下
---------------------------------------------------------------------------
替换宿主程序的ICO图标资源
这里需要重点说明一下:
要想更新一个应用程序的资源
必须先知道这个资源的ID
GetIcoIndex函数的工作就是获取资源ID的
因为一般的应用程序图标资源都会有两个
所以获取了两个图表资源的ID
其他的WINAPI就不多解释了~~
---------------------------------------
为宿主程序增加目标程序资源和dotNet安装包资源
增加的资源也是需要标明ID的
因为宿主程序会根据约定好的ID来得到这些资源
EditId参数就是这些资源的ID
--------------------------------------------------------
把注册表项的路径也当作资源打包进宿主程序
我们约定这个资源的ID为1039
-------------------------------------------------------------
其他的一些代码如下
---------------------------------------------------------------
后记:
没有写容错的代码~
也没有遵循命名规范~
大家见谅~
请各位推荐我的文章
因为你们的支持才是我的动力->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->->
此工具编译后的可执行文件下载地址:BagDotNet.zip
(因为不在需要把dotNet4安装程序打包进来,所以只有几十K了!多轻便啊!)