参考文献:

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. 为什么今天的L4无人驾驶无法到达终局(转)

    本文来自于公众号驭势未来,是驭势科技的微信公众平台,本博客收录的这篇文章版权作者吴甘沙,博客中仅对部分内容进行编辑. 作者:吴甘沙 原文链接:here 声明:文中的观点只代表版权作者的观点,本转载不涉 ...

  2. HDU 6406 Taotao Picks Apples 线段树维护

    题意:给个T,T组数据: 每组给个n,m:n个数,m个操作: (对序列的操作是,一开始假设你手上东西是-INF,到i=1时拿起1,之后遍历,遇到比手头上的数量大的数时替换(拿到手的算拿走),问最后拿走 ...

  3. Workflow规则收藏

    豆瓣电影  查看电影评分等详细信息 查看图片EXIF 图铃机器人 快递查询 翻译 手机号码归属地 音乐视频下载 获取附近的免费WIFI

  4. mysql-5.7.13-winx64 免安装版配置方法

    1.下载MySQL Community Server 5.7.13 解压MySQL压缩包 2.修改 my-default.ini skip-grant-tables 作用是安装好MySQL后 免密码登 ...

  5. ***Linux系统下如何查看及修改文件读写权限

    查看文件权限的语句: 在终端输入:ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些:-rw-rw-r-- 一共有10位数 其中: 最前面那个 - 代表的是 ...

  6. Linux系统运维笔记(一),查看系统版本和设置系统时间

    Linux系统运维笔记 查看系统版本和设置系统时间 查看系统版本 lsb_release -a (适用于所有的linux,包括Redhat.SuSE.Debian等发行版,但是在debian下要安装l ...

  7. 【转】tair与redis比较总结

    1. Tair总述 1.1 系统架构 一个Tair集群主要包括3个必选模块:configserver.dataserver和client,一个可选模块:invalidserver.通常情况下,一个集群 ...

  8. Qt代码创建分隔条

    我们在使用Qt时,会发现在使用UI界面时可以添加窗口分隔条,但我们使用纯代码时却没有分隔条的类函数.这时候我们就需要手动添加,添加方式和Qt自定义标签按钮一样,下面我直接写代码.如果不知道怎么添加的, ...

  9. Java死锁排查和Java CPU 100% 排查的步骤整理

    ================================================= 人工智能教程.零基础!通俗易懂!风趣幽默!大家可以看看是否对自己有帮助! 点击查看高清无码教程 == ...

  10. AngularJS之jeDate日期控件基本使用

    业务背景: 初学AngularJs,最近一段时间,因业务需求,要求日期选择带有快捷键.时分秒等.鉴于AngularJS组件库ui-bootstrap没有此功能,找了一款基于原生JS实现的插件-jeDa ...