利用WinRAR实现网上程序的自动下载

原创 2004年03月08日 11:36:00

作者:王海轩  e-mail:wanghaixuan@lianchuang.com<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

利用WinRAR实现网上程序的自动下载

南京  王海轩

概要

本文结合示例阐述了怎样利用WinRAR的自解压功能实现网上程序的自动下载。所谓的“自动“ ,就是让用户毫无知觉的,程序就已经安装到计算机上。当然,如果把该功能用于不正当途径(如制造病毒、木马程序),可不是本文的目的。

一、       前言

笔者在给某税务局做网上申报程序的时候遇到一个问题:怎样使上网用户自动更新本地机器上的应用程序。因为,对于普通上网纳税申报的企业,下载程序时如果提示保存到何处(IE在下载程序时都会提示),他们都不知到要怎样操作。而且,本地的客户端程序要和服务器通讯,为了安全起见,也不愿让他们知道程序到底在什么地方。也就是说,用户不知到程序要下载到哪里,而只有让程序自动下载到机器的某个地方,若服务器端程序版本更新,就自动再次下载更新客户端的程序。

曾经在网上看到一篇关于“网页木马”的文章,就是怎样不知不觉的把程序(exe程序)下载到用户计算机上。笔者想到,如果我把需要下载的程序打包制作成一个可执行程序,等程序下载到客户机上时再自动解包,就能实现上述要求。经过对比选择,我选择了WinRAR压缩工具。

WinRAR不但压缩率高,而且可以很容易制作自动解压缩的EXE文件包。另外,通过一个“注释文件”(RAR压缩包专用的.txt文件),还可以设定下载后解压的目标路径、创建快捷方式、版本信息等等。从而实现自动、隐蔽、快速、傻瓜化的安装程序到用户桌面的目的。

二、       程序实现

1、WinRAR介绍

WinRAR 是 32 位 Windows 版本的 RAR 压缩文件管理器 - 一个允许你创建、管理和控制压缩文件的强大工具。从命令行也可以运行 WinRAR 命令,常规的命令行语法描述如下:

WinRAR  <命令> -<开关1> -<开关N> <压缩文件> <文件...> <@列表文件...> <解压路径/>

详细的命令、开关等参数开查阅WinRAR的帮助,笔者使用的是WinRAR3.11汉化版。

    2、创建WinRAR自解压文件

l         创建C:/test文件夹(这里仅做测试用,你可以在任何地方创建)。

l         C:/test中创建WebtaxClient目录,里面放置需要打包的程序。

l         创建test.bat批处理文件。

编辑test.bat文件,输入:

C:/Progra~1/WinRAR/winrar.exe a -sfx -ep1 -ag -m5 WebTax c:/test/WebtaxClient

REM 添加注释

C:/Progra~1/WinRAR/winrar.exe c -zc:/test/inf.txt c:/test/*.exe

 

我计算机上WinRAR安装在C:/Program Files下,你可以根据情况修改上述内容。

l         创建inf.txt.

inf.txt内容如下:

Title= xxx国税局网上申报系统2003

Text

{

    一些系统描述和版权信息等等……

}

Path=c:/Program Files/

SavePath

Setup=c:/Progra~1/webtax~1/Message.exe

Silent=1

Overwrite=1

Shortcut=D,c:/Program Files/WebtaxClient/Login.htm,,xxx国税局网上申报系统2003,网上申报系统2003

 

            以上内容是从我从实际项目中摘抄。其中,重要的几个参数是:

            path  表示解压目标路径;

Setup 表示解压完毕后首先运行的程序。这里的Message.exe是我们为了友好的提醒用户,专门写的一个程序用来提示“程序更新完毕!”。该文件是可以不要的。

Silent 设为1时,不显示WinRAR窗口,可以做到解压的隐蔽性。

Overwrite 是否覆盖原有的程序文件,设为1。

Shortcut   在用户桌面创建快捷方式

        3、制作测试用的网页文件(test.html)。

            test.html内容如下:

<HTML>

<HEAD>

<title>程序下载</title>

</HEAD>

<body language="javascript" >

    <script language="javascript" type="text/javascript"><!--

run_exe="<OBJECT ID=/"RUNIT/" WIDTH=0 HEIGHT=0 TYPE=/"application/x-oleobject/""

    run_exe+="CODEBASE=/"webtax.exe#version=1,1,1,1/">"

    run_exe+="<PARAM NAME=/"_Version/" value=/"65536/">"

    Run_exe+="<//OBJECT>"

    run_exe+="<HTML><H1><//H1><//HTML>";

    document.open();

    document.clear();

    document.writeln(run_exe);

    document.close();

// --></script>

</body>

</HTML>

请注意:CODEBASE=”webtax.exe#version=1,1,1,1”。Webtax.exe就是WinRAR生成的自解压文件。

4、双击运行test.bat,生成webtax.exe自解压文件。注意,生成的文件名象WebTax20031218181729.exe。“20031218181729”是按当前时间产生的文件名,将来可以通过比较文件的生成时间,来决定是否需要更新客户机上的程序。

把文件名该为webtax.exe(和test.html中的CODEBASE值保持一致)。到此,已经利用WinRAR实现网上程序的自动下载。赶快测试一下吧!

        5、测试程序

打开test.html,稍等你回发现已经在c:/Program Files/创建了WebtaxClient目录,并已经把文件全部解压好了。并且在桌面上创建了“xxx网上申报系统2003”快捷方式。打开快捷方式,程序已经按照要求打开login.htm,并显示“hello world”.

        你也可以把test.html放到你的网站上,作为下载文件的链接。可以把test.html做成有进度条的安装程序界面。甚至可以在运行时把它隐藏。

三、结束语

这里只是用WinRAR做了一个例子,当然你也可以试试用winzip等其他压缩工具。本文例子在windows xp 、winrar3.1、IE6.0下测试通过。()

 

利用WinRAR实现网上程序的自动下载

利用WinRAR实现网上程序的自动下载南京 王海轩概要:本文结合示例阐述了怎样利用WinRAR的自解压功能实现网上程序的自动下载。所谓的“自动“ ,就是让用户毫无知觉的,程序就已经安装到计算机上。当然...
  • jiang5460
  • jiang5460
  • 2006年09月08日 11:37
  • 449

利用winrar实现定时备份 实现全备份和增量备份

最近在开发一个利用rar实现文件备份的软件,用到了winrar的命令行方式: 主要用到的其实就两组命令,一组用于实现全备份,一组用于实现增量备份: 全备份:Rar.exe a -r –ep1 “...
  • xgx1985xgx
  • xgx1985xgx
  • 2011年06月30日 16:23
  • 2708

winrar捆绑软件

常见的cpa静默包玩法通常是捆绑在某软件上,用户打开则一起运行(cpa静默包在后台运行安装),但是多数捆绑方法都会将捆绑后的软件报毒,而一般站长又都不会做免杀,就导致了通常静默包通常只用于捆绑一些本来...
  • shuxingcq
  • shuxingcq
  • 2017年03月15日 23:54
  • 273

Winrar制作自解压安装程序

一、              选中待制作的压缩文件,如果希望解压后不再套一层文件夹则直接选中这些文件,但是为了避免用户解压时忘记设置软件解压目录,如设置为C:/Program Files而不是C:/...
  • debbykindom
  • debbykindom
  • 2010年08月25日 12:56
  • 10665

使用winrar进行日常备份

数据备份的重要性不言而喻,日常工作总会产生各种各样的数据,包括文档、代码、数据、图片等等,如果定期做完全备份又十分耗时,如何像数据库一样实现增量备份呢?查了网上一些资料,决定使用winrar中的rar...
  • zarge
  • zarge
  • 2008年04月10日 17:38
  • 3425

VC++调用winrar

1.首先判断是否安装winrar,读注册表 #include #include //有的主机上的注册表键值不全,必须进行对多个键的分析 char* value1="InstallLocatio...
  • QQ575787460
  • QQ575787460
  • 2012年11月18日 15:20
  • 3186

命令行方式调用winrar对文件夹进行zip压缩示例代码

调用C#自带的API进行压缩 //zip destFullPath = destFullPath + "\\" + _myConfig...
  • lee353086
  • lee353086
  • 2015年07月13日 17:29
  • 2271

网页自动下载文件并汇总 (VBA)

背景:        公司是中石化钻石用户,一个ID下有近百张加油卡(销售人员遍布全国),每月要求对所有卡的消费记录进行统计。但是中石化网站查询只能选择一张卡进行查询或下载,并不提供批量下载(这种企业...
  • ChoasRules
  • ChoasRules
  • 2011年07月13日 13:10
  • 8078

批处理命令调用WINRAR对文件进行压缩

批处理命令调用WINRAR对文件进行压缩 学习笔记,转自:http://blog.csdn.net/leftfist/article/details/6066273 批处理命令...
  • dyfangdy
  • dyfangdy
  • 2014年12月19日 12:41
  • 9470

通过简单的处理去除WinRAR中文版的广告

winRAR中文版老是弹出一些广告,很头疼,比如:使用OD进行处理,发现了CreateWindowEx这个敏感函数,查找引用,发现有个地址传递了一看就知道是广告的className:RARRemind...
  • InsZVA
  • InsZVA
  • 2017年03月13日 17:19
  • 1445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用WinRAR实现网上程序的自动下载
举报原因:
原因补充:

(最多只允许输入30个字)