原文 http://www.cnblogs.com/daocaorenbx/p/InstallShield.html
一、安装完 桌面创建IE快捷方式:
1、 install script可以直接建internet快捷方式。
2、 basic msi 要先在desktop随便创建一个快捷方式, 修改Target和Arguments两项。将Target 的内容改为[ProgramFilesFolder]Internet Explorer\IEXPLORE.EXE,即将快捷方式指向IE,然后将Arguments修改为网址(必须有http://):http: //tools.taokuaiche.com
二、现在流行安装完程序打开网址: 只需在OnEnd中加一行命令:
(使用默认浏览器打开)
1、LaunchApplication("http://tools.taokuaichen.com", "", "", SW_NORMAL, INFINITE, LAAW_OPTION_WAIT | LAAW_OPTION_USE_SHELLEXECUTE );
(使用IE浏览器打开)
2、LaunchAppAndWait(WINDIR ^ "explorer.exe","http://tools.taokuaichen.com", LAAW_OPTION_WAIT);
三、覆盖安装:每次运行setup.exe时不提示卸载,仍执行安装:
开始修改了卸载逻辑,强制进行每次安装,导致程序安装后无法卸载的死循环。 开始菜单及添加/删除的卸载也是安装,后来在网上找了下资料试了下真管用。操作如下:
Basic MSI工程删除behaviorandLogic->custom actions and Sequences-> Sequencse->installation-> Execute中的RegisterProduct和PublishProduct即可。
注:如果碰到文件有更新不了的现象让你们的开发人员对 升级文件的版本号修改为高一点的即可。
四、现在好多安装程序在安装完成后都有推荐安装其他工具,安装完成去调用另一个setup安装另外的程序
推荐安装的工具不超过2个可以通过以下方法实现(超过2个则需要自定用界面了):
1、将另一个setup.exe加入到 support files—language independent中。(此处的调用路径为SUPPORTDIR)
2、在OnFrstUIAfter中 调用LaunchApp (SUPPORTDIR ^ "setup.exe","");
五、安装包升级的时候如何检查安装目录下被安装程序是否正在运行。如果正在运行则跳提示退出。
if( Is ( FILE_LOCKED, TARGETDIR^"XXX.exe")) then
if( MessageBoxEx( "检查到'XXXX'正在运行,请关闭后再重试","安装提示", WARNING|MB_OK )) then
abort;
endif;
endif;
六、卸载完后判断根目录下及开始菜单是否卸载干净,不干净则强制删除
查找开始菜单是否存在未卸载干净的文件夹
nResult=QueryProgItem (FOLDER_PROGRAMS, "文件夹名称",svCmdLine, svWrkDir,svIconPath,nvIconIndex, svShortCutKey, nvMinimizeFlag);
如果存在则强制删除
if(!(nResult< 0))then
DeleteProgramFolder ( FOLDER_PROGRAMS^"文件夹名称" );
//MessageBox ("DeleteProgramFolder success.", SEVERE);
endif;
查找安装目录是否存在未卸载干净的文件夹
nResult=QueryProgItem (TARGETDIR, "文件夹名称",svCmdLine, svWrkDir,svIconPath,nvIconIndex, svShortCutKey, nvMinimizeFlag);
如果存在则强制删除
if(!(nResult< 0))then
DeleteProgramFolder ( TARGETDIR^"文件夹名称" );
endif;
以上有些问题是网上找了好多资料 试过可以执行成功的。
刚开始接触研究installshield,发现解决一个问题需要很长的时间,网上找资料不断的调试、修改、研究。解决完才发现找到适合的方法几分钟就能搞定,希望给大家带来个方便!
InstallShield 工程类型MSI 使用过程中碰到的问题及解决方法。的更多相关文章
-
国内不fq安装K8S四: 安装过程中遇到的问题和解决方法
目录 4 安装过程中遇到的问题和解决方法 4.1 常见问题 4.2 常用的操作命令 4.3 比较好的博客 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国 ...
-
将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法
本博客主要是说一下,,如何将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法. 1.先在阿里云上购买一台阿里云服务器(ECS云服务器): 2.远程连接上该服务器,在 ...
-
2016最新cocoapods安装流程,安装过程中遇到的问题及解决方法
现在的cocoapods与之前比较.有很多不一样的地方.自己试了一试,终于搞定.现在大概纪录一下. 1.首先查看ruby是否是最新版的. ruby是通过rvm安装的所以需要先安装rvm后查看ruby是 ...
-
蘑菇街TeamTalk编译连接过程中遇到的问题及解决方法(iOS)
今天浏览博文的时候,“蘑菇街开源的即时通讯框架,包括iOS.Android.Mac.Windows客户端和后台 Github源码下载地址:https://github.com/mogujie/Team ...
-
caffe安装过程中遇到的问题以及解决方法
1. 在安装依赖库的时候,遇到: @gxjun-Latitude-E5440:~$ sudo apt-get install libatlas-base-dev 正在读取软件包列表... 完成 正在分 ...
-
使用javamail发信过程中的一些问题及解决方法
http://www.blogjava.net/TrampEagle/archive/2006/05/26/48326.html 今天在研究javamail发信的过程中,出现了一些小问题,现总结如下, ...
-
Tomcat启动过程中找不到JAVA_HOME解决方法
在XP上明明已经安装了JDK1.5并设置好了JAVA_HOME,可偏偏Tomcat在启动过程中找不到. 报错信息如下:Neither the JAVA_HOME nor the JRE_HOME en ...
-
最新cocoapods安装流程,安装过程中遇到的问题及解决方法
最近重新安装了一次cocoapods,参考的安装流程:http://blog.csdn.net/showhilllee/article/details/38398119/ 但是现在的cocoapods ...
-
live555源码研究(十)------在编译过程中遇到的问题及解决方法
一.编译testOnDemandRTSPServer.cpp. 在testProgs项目中,加入testOnDemandRTSPServer.cpp进行编译,编译类型是编译成exe文件,在编译过程中会 ...
随机推荐
-
maven-sprigmvc-mybatis配置
pom.xml配置 <?xml version="1.0"?> <project xsi:schemaLocation="http://maven.ap ...
-
Arp攻击实战
hyddd原创,转载请说明出处. 现在网上很多关于ARP攻击的文章,但多数是描述其原理,少数会以某个工具作为例子展开说明,但感觉说的还是不够详细,今天写个文章以实战介绍一个叫"WinArpA ...
-
Bean
1. Bean配置项 1.1. ID 在整个IOC容器中Bean的唯一标识 1.2. Class 具体要实例化的类 1.3. Scope 范围,作用域 1.4. Constructor argumen ...
-
linux笔记:RPM软件包管理-rpm命令管理
rpm包命名原则: rpm包的依赖性: 包名和包全名: rpm软件包安装.升级和卸载: rpm软件包查询: 从rpm包中提取指定文件:
-
struts2实现文件上传
Struts2中实现简单的文件上传功能: 第一步:将如下文件引入到WEB_INF/lib目录下面,对应的jar文件可自行下载 第二步:在包test.struts2下建立类UploadFile pack ...
-
KMP字符串模式匹配详解(转)
来自CSDN A_B_C_ABC 网友 KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法.简单匹配算法的时间复杂度为O(m*n);KMP匹配算法.可以证明它的时间复杂度 ...
-
js添加删除元素内容
<body> <div id="div" style="background: yellow;width:200px;height:200px;&quo ...
-
Redis持久化之RDB
本文及后续文章,Redis版本均是v3.2.8 上篇文章介绍了RDB的优缺点,我们先来回顾下RDB的主要原理,在某个时间点把内存中所有数据保存到磁盘文件中,这个过程既可以通过人工输入命令执行,也可以让 ...
-
关于__cmp__的使用
__cmp__是python的类中所使用的特殊函数,一般用于对类对象列表的排序. 举个例子,假设需要对Student类的对象列表按照其成绩grade属性进行排序,那么可以这么设计: class Stu ...
-
python自动化开发-[第十天]-线程、协程、socketserver
今日概要 1.线程 2.协程 3.socketserver 4.基于udp的socket(见第八节) 一.线程 1.threading模块 第一种方法:实例化 import threading imp ...