参考文献:

bat脚本设置文件的只读属性:http://wenda.tianya.cn/question/0f484c28ffd8d4e9

bat脚本创建internet快捷方式:http://www.cnblogs.com/gszhl/archive/2009/04/23/1441753.html

winrar自解压教程:http://wenku.baidu.com/view/86d22821192e45361066f5fc.html

背景

还是继续之前的问题,我通过IE内嵌google chrome frame解决浏览器兼容问题里面的方案,解决了客户IE8浏览器访问使用svg制作的网站以后,客户又提出新的需求。客户要求在安装完这个google chrome frame以后,能够自动在桌面创建快捷方式,下次再访问系统就不要再输入网址了。

解决方法

这就涉及到安装包的知识,但是我之前从来没有做过安装包,对于这个需求比较没有低。后来在群里问了一下人,有一个朋友说使用winrar自解压技术,这里这是感谢这位朋友的指点,为我指明了方向,省了我很多工夫。真是”知道有什么,比知道是什么“牛逼的多啊。

google搜索”winrar自解压“相关的内容,大体知道了这事一个什么东西。这个能够帮我们将多个文件打包成.exe文件,然后通过设置,将所有文件解压到指定目录,并且在解压前和解压后执行特定的程序。所有我设计思路是这样的。

  1. 将GoogleChromeframeStandaloneEnterprise.msi、一个bat脚本还有internet快捷方式图标打包
  2. 在执行最后的打包程序以后,会将这三个文件解压缩到"C:\Program Files"目录下
  3. 自动执行GoogleChromeframeStandaloneEnterprise.msi和bat脚本,前者是安装google chrome frame,后者是创建一个只读模式的“internet快捷方式”。为什么只读是因为测试发现我在google chrome frame安装完毕之前点击这个快捷方式,快捷方式的内容会被修改,真是奇怪。
  4. 在压缩包里面放ico是为了让桌面快捷方式连接到这个图标。

我的bat脚本如下。前面是创建快捷方式,并且制定图标logo所对应的图片,最后为这个文件设定只读权限。下面的内容之所以有两段,是因为区分windows 2003跟windows 2008的区别。

在xp和windows server 2003当中,桌面的物理地址就是桌面,而在windows server 2008和windows 7当中,桌面的物理地址是Desktop。为了应对多系统的问题,我干脆两个都写上,反正没有路径的话,就执行失败,不影响结果。

@echo off
echo [InternetShortcut] >> "%userprofile%\桌面\xx系统.url"
echo URL="http://192.168.0.3:8080/abc/">> "%userprofile%\桌面\xx系统.url"
echo IDList=
echo HotKey=
echo IconIndex= >>"%userprofile%\桌面\xx系统.url"
echo IconFile=C:\Program Files\googlechromeframe\favicon.ico >>"%userprofile%\桌面\xx系统.url"
attrib +r %userprofile%\桌面\xx系统.url echo [InternetShortcut] > "%userprofile%\Desktop\xx系统.url"
echo URL="http://192.168.0.3:8080/abc/">> "%userprofile%\Desktop\xx系统.url"
echo IDList=
echo HotKey=
echo IconIndex= >>"%userprofile%\Desktop\xx系统.url"
echo IconFile=C:\Program Files\googlechromeframe\favicon.ico >>"%userprofile%\Desktop\xx系统.url"
attrib +r %userprofile%\Desktop\xx系统.url

操作过程

使用winrar自解压功能制作安装包的更多相关文章

  1. VS 制作安装包小窥

    难得忙里偷闲,看到有关VS制作安装包,按下文小试一把,还行,比不上Installshield. 首先在打开 VS2010    >   文件 >新建项目 创建一个安装项目  XXX 在“目 ...

  2. [转载]如何用Visual Studio制作安装包

    原文地址:如何用Visual Studio制作安装包作者:蓝羽幽游 环境:Microsoft Visual Studio 2010 语言:C# 构架:.NET Framework 2.0 解决方案名称 ...

  3. 利用WIX制作安装包(2)

    原文 利用WIX制作安装包(2) 这一篇文章将为大家介绍如何使用WIX自定义UI.上一篇文章我们讲过WIX为我们提供了五种安装界面.每种安装界面都是由不同的Dialog组成.在这里我们挑选一种比较常用 ...

  4. 利用WIX制作安装包(1)

    原文 利用WIX制作安装包(1) #installation 下载最新版本的WIX toolset 并安装DOWNLOAD Wix toolset V3.5之后的版本已经可以集成到visual stu ...

  5. 循序渐进做项目系列(5):制作安装包,谁人都可以!——VS制作安装包简明教程

    一开始让我做安装包的时候,其实我是拒绝的.因为我根本就不会做安装包.查了资料之后,我很懵,很晕,很乱,因为不清晰,不简明,不直白.然而经过一番彷徨的挣扎,我终于发现:制作安装包,谁人都可以!故挥狼毫, ...

  6. 使用Qt installer framework制作安装包

    一.介绍 使用Qt库开发的应用程序,一般有两种发布方式:(1)静态编译发布.这种方式使得程序在编译的时候会将Qt核心库全部编译到一个可执行文件中.其优势是简单单一,所有的依赖库都集中在一起,其缺点也很 ...

  7. 【原创】VB6.0应用程序安装包的生成(Setup Factory 9.0制作安装包的方法)

    VB6.0应用程序安装包的生成,利用其自带的打包工具生成的安装程序很简陋,一点不美观:如果想让自己的应用程序安装的时候显得高大上一点,本教程提供使用Setup Factory 9.0制作安装包的方法. ...

  8. vs2015 制作安装包额外需要安装的软件VSI_bundle

    vs2015 制作安装包额外需要安装的软件VSI_bundle 下载地址:http://files.cnblogs.com/files/sdner/VSI_bundle.rar

  9. Wix制作安装包

    Wix制作安装包,找起资料来很费劲,记录一下: Product.wxs,该文件只能制作出msi形式的安装包,不能做到自动检测framework. <?xml version="1.0& ...

随机推荐

  1. RabbitMq简单应用

    服务端: <?php //配置信息 $conn_args = array( 'host' => '127.0.0.1', 'port' => '5672', 'login' => ...

  2. linux驱动---等待队列、工作队列、Tasklets【转】

    转自:https://blog.csdn.net/ezimu/article/details/54851148 概述: 等待队列.工作队列.Tasklet都是linux驱动很重要的API,下面主要从用 ...

  3. urb传输的代码分析【转】

    转自:http://blog.csdn.net/zkami/article/details/2503829 urb传输的代码分析 如需引用,请注明出处blog.csdn.net/zkami 作者Zhe ...

  4. jmeter --使用put方法上传文件

    今天来记录下put上传文件遇到的坑吧!折腾死我了, 刚开始的时候用的jmeter3.0,各种尝试,发现始终告诉我文件内容为空<actual file content,not shown here ...

  5. python抓取内涵段子文章

    # coding:utf-8 from urllib.request import urlretrieve import threading import requests from bs4 impo ...

  6. TinyHttpd代码解析

    十一假期,闲来无事.看了几个C语言开源代码.http://www.cnblogs.com/TinyHttpd 这里本来想解析一下TinyHttpd的代码,但是在网上一搜,发现前辈们已经做的很好了.这里 ...

  7. Navicat Premium 常用功能讲解

    https://www.linuxidc.com/Linux/2016-04/130159.htm Navicat Premium 常用功能讲解 1.快捷键 1.1. F8 快速回到当前对象列表 1. ...

  8. StringUtils一些常用方法

    StringUtils是org.apache.commons.lang jar包里面的类方法,当输入参数String为null则不会抛出NullPointerException,而是做了相应处理,nu ...

  9. PHP 与redis 操作添加处理投票

    <?php header("Content-Type:text/html;charset=utf-8"); include 'lib/mysql.class.php'; $m ...

  10. sonarQube代码管理工具

    第一步:安装环境:jdk 1.8   idea  mysql5.6以上  sonarqube5.6.6 第二歩:下载好sonarqube后,解压打开bin目录,启动相应OS目录下的StartSonar ...