参考文献:
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文件,然后通过设置,将所有文件解压到指定目录,并且在解压前和解压后执行特定的程序。所有我设计思路是这样的。
- 将GoogleChromeframeStandaloneEnterprise.msi、一个bat脚本还有internet快捷方式图标打包
- 在执行最后的打包程序以后,会将这三个文件解压缩到"C:\Program Files"目录下
- 自动执行GoogleChromeframeStandaloneEnterprise.msi和bat脚本,前者是安装google chrome frame,后者是创建一个只读模式的“internet快捷方式”。为什么只读是因为测试发现我在google chrome frame安装完毕之前点击这个快捷方式,快捷方式的内容会被修改,真是奇怪。
- 在压缩包里面放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=0 echo IconIndex=0 >>"%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=0 echo IconIndex=0 >>"%userprofile%\Desktop\xx系统.url" echo IconFile=C:\Program Files\googlechromeframe\favicon.ico >>"%userprofile%\Desktop\xx系统.url" attrib +r %userprofile%\Desktop\xx系统.url
操作过程