分类: Windows平台
2013-01-19 04:02:51
需求:
有几个exe文件或者msi等等文件,需要打成一个包,将这个打好的包放到某台电脑上运行,能够自动执行打在包里面的exe程序;
方案1:
打成一个包,很显然用RAR压缩成一个包就可以了,那么解压后如何运行被打在包里面的exe程序呢,rar也提供了这个功能哦!
1)在“常规”页,勾选“创建自解压格式压缩文件”;
2)在“高级”页,点击按钮“自解压选项”,可以在“常规”tab中设置,解压的目标路径,已经解压后运行的exe文件等;
详细使用请参考网上教程;
方案2:
自己写的,思路如下:
1)首先是如何把要发布的程序打包进宿主程序来:宿主程序把要打包的文件按照二进制全部读入内存(方式可以自己定),然后把把宿主程序做一个拷贝,
使用BeginUpdateResource->UpdateResource(RT_RCDATA)->EndUpdateResource,就可以把exe文件写到宿主拷贝文件中了;
2)打开宿主的拷贝程序,点击Unpack,则从宿主程序的resource节读取内容,之后将内容写入一个新的exe文件就实现了解包的过程;
使用的API如下:FindResource->LoadResource->LockResource->FreeResource;
3)还可以实现其它更高级的功能,注意杀毒软件会报告安全问题;
有兴趣的可以看附件:package_unpack_fun