给程序加外壳

这两天有这么一个任务:写一个 给指定的EXE加一个外壳 的程序,

该外壳需要做如下工作:

1. 判断当前时间是否晚于核查时间,如果早于核查时间,运行原指定EXE

2. 若晚于核查时间,且没有新程序,从设定网址下载新程序

3. 若晚于核查时间,且有新程序,直接运行新程序

 

而改程序,需要能够设定原EXE路径,设定下载程序网址,设定核查时间

 

最初的解决方案是如此: 将外壳需要做的工作写成一个命令行程序,几个关键变量用占位字符代替。保存在txt中。运行程序时根据用户输入,动态替换txt中占位符之后进行动态编译。然后将生成的命令行与EXE一同用winrar打包。打包操作用命令行执行,并且采用解压到临时文件,且设定覆盖模式为不覆盖新文件。

一番折腾之后。客户要求不使用SFX.

在客户的提点之下,意识到了可以用vs的命令行编译。

遂调整为如下方案:

新建一个命令行的项目,将改项目至于打包程序debug目录下,根据打包程序输入动态调整改命令行代码,并且将指定原EXE作为嵌入的资源加载到命令行程序中。而改命令行程序中需要完成将嵌入的资源释放到本地临时文件夹中。(最初是在命令行中直接调用,这样的问题是针对不同程序可能没有办法直接执行,并且无法将下载的程序嵌入打包好的程序里)

转载于:https://www.cnblogs.com/Alf7/p/4131838.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值