原文 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 使用过程中碰到的问题及解决方法。的更多相关文章

  1. 国内不fq安装K8S四: 安装过程中遇到的问题和解决方法

    目录 4 安装过程中遇到的问题和解决方法 4.1 常见问题 4.2 常用的操作命令 4.3 比较好的博客 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国 ...

  2. 将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法

    本博客主要是说一下,,如何将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法. 1.先在阿里云上购买一台阿里云服务器(ECS云服务器): 2.远程连接上该服务器,在 ...

  3. 2016最新cocoapods安装流程,安装过程中遇到的问题及解决方法

    现在的cocoapods与之前比较.有很多不一样的地方.自己试了一试,终于搞定.现在大概纪录一下. 1.首先查看ruby是否是最新版的. ruby是通过rvm安装的所以需要先安装rvm后查看ruby是 ...

  4. 蘑菇街TeamTalk编译连接过程中遇到的问题及解决方法(iOS)

    今天浏览博文的时候,“蘑菇街开源的即时通讯框架,包括iOS.Android.Mac.Windows客户端和后台 Github源码下载地址:https://github.com/mogujie/Team ...

  5. caffe安装过程中遇到的问题以及解决方法

    1. 在安装依赖库的时候,遇到: @gxjun-Latitude-E5440:~$ sudo apt-get install libatlas-base-dev 正在读取软件包列表... 完成 正在分 ...

  6. 使用javamail发信过程中的一些问题及解决方法

    http://www.blogjava.net/TrampEagle/archive/2006/05/26/48326.html 今天在研究javamail发信的过程中,出现了一些小问题,现总结如下, ...

  7. Tomcat启动过程中找不到JAVA_HOME解决方法

    在XP上明明已经安装了JDK1.5并设置好了JAVA_HOME,可偏偏Tomcat在启动过程中找不到. 报错信息如下:Neither the JAVA_HOME nor the JRE_HOME en ...

  8. 最新cocoapods安装流程,安装过程中遇到的问题及解决方法

    最近重新安装了一次cocoapods,参考的安装流程:http://blog.csdn.net/showhilllee/article/details/38398119/ 但是现在的cocoapods ...

  9. live555源码研究(十)------在编译过程中遇到的问题及解决方法

    一.编译testOnDemandRTSPServer.cpp. 在testProgs项目中,加入testOnDemandRTSPServer.cpp进行编译,编译类型是编译成exe文件,在编译过程中会 ...

随机推荐

  1. python-整理-面向对象

    python的类和perl的类有相似之处,类的方法的第一个参数是表示类的对象自己,相当于c#的this python中定义类 class person: ''示例类,人'' count=0; def ...

  2. 是一个IPV6地址

    每次在VS上调试,发现本机地址是 ::1 这种就不解.由于太忙而没关注,今天看了IPV6的文章才明白.原来这是个IPV6地址,也就是本机环回地址.以前是127.0.0.1,IPV4版本,而IPV6的就 ...

  3. Python爬虫实战(4):豆瓣小组话题数据采集—动态网页

    1, 引言 注释:上一篇<Python爬虫实战(3):安居客房产经纪人信息采集>,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功.本篇是针对动态网页的数据 ...

  4. mini-httpd源码分析-mini-httpd.c

    main函数分析: 一,参数设置: 读取命令行参数 配置文件参数 读取参数,设置对应的全局变量.主要参数有:配置文件:资源目录:进程ID文件:日志文件:字符集:主机名及端口号... 二,参数处理:重点 ...

  5. Substrings(hd1238)

    Substrings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  6. QT Creator 2.7.2 代码自动补全快捷键设置

    在QT Creater界面点[工具]再进[选项]找到[环境]下的[键盘]选项,搜索[CompleteThis]发现默认快捷键就是CTRL+SPACE,把它删除,然后添加自己想设置的快捷键(因为之前用e ...

  7. linux scp ssh命令不用输入密码

    把你的本地主机用户的ssh公匙文件复制到远程主机用户的~/.ssh/authorized_keys文件中 假设本地主机linux100,远程主机linux200 一,在linux100主机里的用户 运 ...

  8. Tar打包、压缩与解压缩到指定目录的方法

    tar在linux上是常用的打包.压缩.加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数 参数: -c :create 建立压缩档案的参数: -x : 解压缩压缩档案的参数: -z : 是 ...

  9. 函数dirname--返回路径中的目录部分

    http://blog.chinaunix.net/uid-122937-id-142880.html dirname() 函数作用   返回路径中的目录部分. 语法   dirname(path) ...

  10. C#基础:事件(一) 【转】

    前面简要介绍了委托的基本知识,包括委托的概念.匿名方法.Lambda表达式等,现在讲讲与委托相关的另一个概念:事件. 事件由委托定义,因为事件的触发方(或者说发布方)并不知道事件的订阅方会用什么样的函 ...